From 56aba73053103a26b249a33fa6760904f509ea55 Mon Sep 17 00:00:00 2001 From: Arshan Dabirsiaghi Date: Mon, 9 Dec 2024 08:49:53 -0500 Subject: [PATCH] New rules, first implemented in CodeQL (#483) This change introduces new remediation logic for weak crypto algorithms, and log injection, two unexciting vulnerability classes for different reasons, but for completeness, should be present. --- .../codemodder/codemods/DefaultCodemods.java | 2 + .../codeql/CodeQLLogInjectionCodemod.java | 54 + ...tentiallyUnsafeCryptoAlgorithmCodemod.java | 55 + .../CodeQLJEXLInjectionCodemodTest.java | 1 + .../codeql/CodeQLLogInjectionCodemodTest.java | 14 + ...iallyUnsafeCryptoAlgorithmCodemodTest.java | 13 + .../codeql-log-injection/Templates.java.after | 343 + .../Templates.java.before | 342 + .../resources/codeql-log-injection/out.sarif | 153017 +++++++++++++++ .../WSSEUtilities.java.after | 83 + .../WSSEUtilities.java.before | 83 + .../out.sarif | 153017 +++++++++++++++ .../GenericRemediationMetadata.java | 4 +- .../loginjection/LogInjectionRemediator.java | 58 + .../loginjection/LogStatementFixer.java | 163 + .../weakcrypto/MessageDigestFixer.java | 35 + .../WeakCryptoAlgorithmRemediator.java | 49 + .../log-injection/description.md | 12 + .../log-injection/report.json | 6 + .../weak-crypto-algorithm/description.md | 10 + .../weak-crypto-algorithm/report.json | 5 + .../DefaultJNDIInjectionRemediatorTest.java | 1 - .../LogInjectionRemediatorTest.java | 246 + 23 files changed, 307611 insertions(+), 2 deletions(-) create mode 100644 core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemod.java create mode 100644 core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod.java create mode 100644 core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemodTest.java create mode 100644 core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemodTest.java create mode 100644 core-codemods/src/test/resources/codeql-log-injection/Templates.java.after create mode 100644 core-codemods/src/test/resources/codeql-log-injection/Templates.java.before create mode 100644 core-codemods/src/test/resources/codeql-log-injection/out.sarif create mode 100644 core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.after create mode 100644 core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.before create mode 100644 core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/out.sarif create mode 100644 framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogInjectionRemediator.java create mode 100644 framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogStatementFixer.java create mode 100644 framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/MessageDigestFixer.java create mode 100644 framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/WeakCryptoAlgorithmRemediator.java create mode 100644 framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/description.md create mode 100644 framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/report.json create mode 100644 framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/description.md create mode 100644 framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/report.json create mode 100644 framework/codemodder-base/src/test/java/io/codemodder/remediation/loginjection/LogInjectionRemediatorTest.java diff --git a/core-codemods/src/main/java/io/codemodder/codemods/DefaultCodemods.java b/core-codemods/src/main/java/io/codemodder/codemods/DefaultCodemods.java index 3d9afe4e9..ce515029e 100644 --- a/core-codemods/src/main/java/io/codemodder/codemods/DefaultCodemods.java +++ b/core-codemods/src/main/java/io/codemodder/codemods/DefaultCodemods.java @@ -34,8 +34,10 @@ public static List> asList() { CodeQLJDBCResourceLeakCodemod.class, CodeQLJEXLInjectionCodemod.class, CodeQLJNDIInjectionCodemod.class, + CodeQLLogInjectionCodemod.class, CodeQLMavenSecureURLCodemod.class, CodeQLOutputResourceLeakCodemod.class, + CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod.class, CodeQLPredictableSeedCodemod.class, CodeQLRegexInjectionCodemod.class, CodeQLSQLInjectionCodemod.class, diff --git a/core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemod.java b/core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemod.java new file mode 100644 index 000000000..6b7bc6d56 --- /dev/null +++ b/core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemod.java @@ -0,0 +1,54 @@ +package io.codemodder.codemods.codeql; + +import com.contrastsecurity.sarif.Result; +import com.github.javaparser.ast.CompilationUnit; +import io.codemodder.*; +import io.codemodder.codetf.DetectorRule; +import io.codemodder.providers.sarif.codeql.ProvidedCodeQLScan; +import io.codemodder.remediation.GenericRemediationMetadata; +import io.codemodder.remediation.Remediator; +import io.codemodder.remediation.loginjection.LogInjectionRemediator; +import java.util.Optional; +import javax.inject.Inject; + +/** A codemod for automatically fixing Log Injection from CodeQL. */ +@Codemod( + id = "codeql:java/log-injection", + reviewGuidance = ReviewGuidance.MERGE_WITHOUT_REVIEW, + importance = Importance.HIGH, + executionPriority = CodemodExecutionPriority.HIGH) +public final class CodeQLLogInjectionCodemod extends CodeQLRemediationCodemod { + + private final Remediator remediator; + + @Inject + public CodeQLLogInjectionCodemod( + @ProvidedCodeQLScan(ruleId = "java/log-injection") final RuleSarif sarif) { + super(GenericRemediationMetadata.LOG_INJECTION.reporter(), sarif); + this.remediator = new LogInjectionRemediator<>(); + } + + @Override + public DetectorRule detectorRule() { + return new DetectorRule( + "log-injection", + "Log Injection", + "https://codeql.github.com/codeql-query-help/java/java-log-injection/"); + } + + @Override + public CodemodFileScanningResult visit( + final CodemodInvocationContext context, final CompilationUnit cu) { + return remediator.remediateAll( + cu, + context.path().toString(), + detectorRule(), + ruleSarif.getResultsByLocationPath(context.path()), + SarifFindingKeyUtil::buildFindingId, + r -> r.getLocations().get(0).getPhysicalLocation().getRegion().getStartLine(), + r -> + Optional.ofNullable( + r.getLocations().get(0).getPhysicalLocation().getRegion().getEndLine()), + r -> Optional.empty()); + } +} diff --git a/core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod.java b/core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod.java new file mode 100644 index 000000000..e5a65af66 --- /dev/null +++ b/core-codemods/src/main/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod.java @@ -0,0 +1,55 @@ +package io.codemodder.codemods.codeql; + +import com.contrastsecurity.sarif.Result; +import com.github.javaparser.ast.CompilationUnit; +import io.codemodder.*; +import io.codemodder.codetf.DetectorRule; +import io.codemodder.providers.sarif.codeql.ProvidedCodeQLScan; +import io.codemodder.remediation.GenericRemediationMetadata; +import io.codemodder.remediation.Remediator; +import io.codemodder.remediation.weakcrypto.WeakCryptoAlgorithmRemediator; +import java.util.Optional; +import javax.inject.Inject; + +/** A codemod for automatically fixing weak crypto algorithms. */ +@Codemod( + id = "codeql:java/potentially-weak-cryptographic-algorithm", + reviewGuidance = ReviewGuidance.MERGE_AFTER_REVIEW, + importance = Importance.HIGH, + executionPriority = CodemodExecutionPriority.HIGH) +public final class CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod extends CodeQLRemediationCodemod { + + private final Remediator remediator; + + @Inject + public CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod( + @ProvidedCodeQLScan(ruleId = "java/potentially-weak-cryptographic-algorithm") + final RuleSarif sarif) { + super(GenericRemediationMetadata.WEAK_CRYPTO_ALGORITHM.reporter(), sarif); + this.remediator = new WeakCryptoAlgorithmRemediator<>(); + } + + @Override + public DetectorRule detectorRule() { + return new DetectorRule( + "potentially-weak-cryptographic-algorithm", + "Use of a potentially broken or risky cryptographic algorithm", + "https://codeql.github.com/codeql-query-help/java/java-potentially-weak-cryptographic-algorithm/"); + } + + @Override + public CodemodFileScanningResult visit( + final CodemodInvocationContext context, final CompilationUnit cu) { + return remediator.remediateAll( + cu, + context.path().toString(), + detectorRule(), + ruleSarif.getResultsByLocationPath(context.path()), + SarifFindingKeyUtil::buildFindingId, + r -> r.getLocations().get(0).getPhysicalLocation().getRegion().getStartLine(), + r -> + Optional.ofNullable( + r.getLocations().get(0).getPhysicalLocation().getRegion().getEndLine()), + r -> Optional.empty()); + } +} diff --git a/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLJEXLInjectionCodemodTest.java b/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLJEXLInjectionCodemodTest.java index ccac70b0c..a62a1aa6d 100644 --- a/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLJEXLInjectionCodemodTest.java +++ b/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLJEXLInjectionCodemodTest.java @@ -6,5 +6,6 @@ @Metadata( codemodType = CodeQLJEXLInjectionCodemod.class, testResourceDir = "jexl-expression-injection", + doRetransformTest = false, dependencies = {}) final class CodeQLJEXLInjectionCodemodTest implements CodemodTestMixin {} diff --git a/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemodTest.java b/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemodTest.java new file mode 100644 index 000000000..be085d635 --- /dev/null +++ b/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLLogInjectionCodemodTest.java @@ -0,0 +1,14 @@ +package io.codemodder.codemods.codeql; + +import io.codemodder.testutils.CodemodTestMixin; +import io.codemodder.testutils.Metadata; + +@Metadata( + codemodType = CodeQLLogInjectionCodemod.class, + testResourceDir = "codeql-log-injection", + renameTestFile = + "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java", + doRetransformTest = false, + expectingFixesAtLines = {124}, + dependencies = {}) +final class CodeQLLogInjectionCodemodTest implements CodemodTestMixin {} diff --git a/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemodTest.java b/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemodTest.java new file mode 100644 index 000000000..afd958a89 --- /dev/null +++ b/core-codemods/src/test/java/io/codemodder/codemods/codeql/CodeQLPotentiallyUnsafeCryptoAlgorithmCodemodTest.java @@ -0,0 +1,13 @@ +package io.codemodder.codemods.codeql; + +import io.codemodder.testutils.CodemodTestMixin; +import io.codemodder.testutils.Metadata; + +@Metadata( + codemodType = CodeQLPotentiallyUnsafeCryptoAlgorithmCodemod.class, + testResourceDir = "codeql-potentially-unsafe-crypto-algorithm", + renameTestFile = "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java", + expectingFixesAtLines = {38}, + doRetransformTest = false, + dependencies = {}) +final class CodeQLPotentiallyUnsafeCryptoAlgorithmCodemodTest implements CodemodTestMixin {} diff --git a/core-codemods/src/test/resources/codeql-log-injection/Templates.java.after b/core-codemods/src/test/resources/codeql-log-injection/Templates.java.after new file mode 100644 index 000000000..2ec943b36 --- /dev/null +++ b/core-codemods/src/test/resources/codeql-log-injection/Templates.java.after @@ -0,0 +1,343 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. The ASF licenses this file to You + * under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. For additional information regarding + * copyright in this work, please see the NOTICE file in the top level + * directory of this distribution. + */ + +package org.apache.roller.weblogger.ui.struts2.editor; + +import static io.github.pixee.security.Newlines.stripNewLines; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.roller.util.RollerConstants; +import org.apache.roller.weblogger.WebloggerException; +import org.apache.roller.weblogger.business.WeblogManager; +import org.apache.roller.weblogger.business.WebloggerFactory; +import org.apache.roller.weblogger.pojos.*; +import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType; +import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage; +import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType; +import org.apache.roller.weblogger.ui.struts2.util.UIAction; +import org.apache.roller.weblogger.util.cache.CacheManager; +import org.apache.struts2.convention.annotation.AllowedMethods; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; + +/** + * Templates listing page. + */ +// TODO: make this work @AllowedMethods({"execute","add"}) +public class Templates extends UIAction { + + private static final Log log = LogFactory.getLog(Templates.class); + + // list of templates to display + private List templates = Collections.emptyList(); + + // list of template action types user is allowed to create + private Map availableActions = Collections.emptyMap(); + + // name and action of new template if we are adding a template + private String newTmplName = null; + private ComponentType newTmplAction = null; + + // id of template to remove + private String removeId = null; + + public Templates() { + this.actionName = "templates"; + this.desiredMenu = "editor"; + this.pageTitle = "pagesForm.title"; + } + + @Override + public String execute() { + + // query for templates list + try { + + // get current list of templates, minus custom stylesheet + List raw = WebloggerFactory.getWeblogger() + .getWeblogManager().getTemplates(getActionWeblog()); + List pages = new ArrayList<>(raw); + + // Remove style sheet from list so not to show when theme is + // selected in shared theme mode + if (getActionWeblog().getTheme().getStylesheet() != null) { + pages.remove(WebloggerFactory.getWeblogger().getWeblogManager() + .getTemplateByLink(getActionWeblog(), getActionWeblog().getTheme().getStylesheet().getLink())); + } + setTemplates(pages); + + // build list of action types that may be added + Map actionsMap = new EnumMap<>(ComponentType.class); + addComponentTypeToMap(actionsMap, ComponentType.CUSTOM); + + if (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) { + + // if the weblog is using a custom theme then determine which + // action templates are still available to be created + addComponentTypeToMap(actionsMap, ComponentType.PERMALINK); + addComponentTypeToMap(actionsMap, ComponentType.SEARCH); + addComponentTypeToMap(actionsMap, ComponentType.WEBLOG); + addComponentTypeToMap(actionsMap, ComponentType.TAGSINDEX); + + for (WeblogTemplate tmpPage : getTemplates()) { + if (!ComponentType.CUSTOM.equals(tmpPage.getAction())) { + actionsMap.remove(tmpPage.getAction()); + } + } + } else { + // Make sure we have an option for the default web page + addComponentTypeToMap(actionsMap, ComponentType.WEBLOG); + if (getNewTmplAction() == null) { + setNewTmplAction(ComponentType.WEBLOG); + } + for (WeblogTemplate tmpPage : getTemplates()) { + if (ComponentType.WEBLOG.equals(tmpPage.getAction())) { + actionsMap.remove(ComponentType.WEBLOG); + setNewTmplAction(null); + break; + } + } + } + setAvailableActions(actionsMap); + + } catch (WebloggerException ex) { + log.error("Error getting templates for weblog - " + + stripNewLines(getActionWeblog().getHandle()), ex); + addError("Error getting template list - check Roller logs"); + } + + return LIST; + } + + private void addComponentTypeToMap(Map map, ComponentType component) { + map.put(component, component.getReadableName()); + } + + /** + * Save a new template. + */ + public String add() { + + // validation + myValidate(); + + if (!hasActionErrors()) { + try { + + WeblogTemplate newTemplate = new WeblogTemplate(); + newTemplate.setWeblog(getActionWeblog()); + newTemplate.setAction(getNewTmplAction()); + newTemplate.setName(getNewTmplName()); + newTemplate.setHidden(false); + newTemplate.setNavbar(false); + newTemplate.setLastModified(new Date()); + + if (ComponentType.CUSTOM.equals(getNewTmplAction())) { + newTemplate.setLink(getNewTmplName()); + } + + // Make sure we have always have a Weblog main page. Stops + // deleting main page in custom theme mode also. + if (ComponentType.WEBLOG.equals(getNewTmplAction())) { + newTemplate.setName(WeblogTemplate.DEFAULT_PAGE); + } + + // save the new Template + WebloggerFactory.getWeblogger().getWeblogManager().saveTemplate(newTemplate); + + // Create weblog template renditions for available types. + CustomTemplateRendition standardRendition = + new CustomTemplateRendition( newTemplate, RenditionType.STANDARD); + standardRendition.setTemplate(getText("pageForm.newTemplateContent")); + standardRendition.setTemplateLanguage(TemplateLanguage.VELOCITY); + WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(standardRendition); + + /* TODO: need a way for user to specify dual or single template via UI + CustomTemplateRendition mobileRendition = new CustomTemplateRendition( + newTemplate.getId(), RenditionType.MOBILE); + mobileRendition.setTemplate(newTemplate.getContents()); + mobileRendition.setTemplateLanguage(TemplateLanguage.VELOCITY); + WebloggerFactory.getWeblogger().getWeblogManager() + .saveTemplateRendition(mobileRendition); + */ + + // if this person happened to create a Weblog template from + // scratch then make sure and set the defaultPageId. + if (WeblogTemplate.DEFAULT_PAGE.equals(newTemplate.getName())) { + WebloggerFactory.getWeblogger().getWeblogManager().saveWeblog(getActionWeblog()); + } + + // flush results to db + WebloggerFactory.getWeblogger().flush(); + + // reset form fields + setNewTmplName(null); + setNewTmplAction(null); + + } catch (WebloggerException ex) { + log.error("Error adding new template for weblog - " + stripNewLines(getActionWeblog().getHandle()), ex); + addError("Error adding new template - check Roller logs"); + } + } + + return execute(); + } + + /** + * Remove a new template. + */ + public String remove() { + + WeblogTemplate template = null; + try { + template = WebloggerFactory.getWeblogger().getWeblogManager().getTemplate(getRemoveId()); + } catch (WebloggerException e) { + addError("Error deleting template - check Roller logs"); + } + + if (template != null) { + try { + if (!template.isRequired() + || !WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) { + + WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager(); + + // if weblog template remove custom style sheet also + if (template.getName().equals(WeblogTemplate.DEFAULT_PAGE)) { + + ThemeTemplate stylesheet = getActionWeblog().getTheme().getStylesheet(); + + // Delete style sheet if the same name + if (stylesheet != null + && getActionWeblog().getTheme().getStylesheet() != null + && stylesheet.getLink().equals( + getActionWeblog().getTheme().getStylesheet().getLink())) { + + // Same so OK to delete + WeblogTemplate css = + mgr.getTemplateByLink(getActionWeblog(), stylesheet.getLink()); + + if (css != null) { + mgr.removeTemplate(css); + } + } + } + + // notify cache + CacheManager.invalidate(template); + mgr.removeTemplate(template); + WebloggerFactory.getWeblogger().flush(); + + } else { + addError("editPages.remove.requiredTemplate"); + } + + } catch (Exception ex) { + log.error("Error removing page - " + stripNewLines(getRemoveId()), ex); + addError("editPages.remove.error"); + } + } else { + addError("editPages.remove.error"); + } + + return execute(); + } + + // validation when adding a new template + private void myValidate() { + + // make sure name is non-null and within proper size + if (StringUtils.isEmpty(getNewTmplName())) { + addError("Template.error.nameNull"); + } else if (getNewTmplName().length() > RollerConstants.TEXTWIDTH_255) { + addError("Template.error.nameSize"); + } + + // make sure action is a valid + if (getNewTmplAction() == null) { + addError("Template.error.actionNull"); + } + + // check if template by that name already exists + try { + WeblogTemplate existingPage = WebloggerFactory.getWeblogger().getWeblogManager() + .getTemplateByName(getActionWeblog(), getNewTmplName()); + if (existingPage != null) { + addError("pagesForm.error.alreadyExists", getNewTmplName()); + } + } catch (WebloggerException ex) { + log.error("Error checking for existing template", ex); + } + + } + + /** + * Checks if is custom theme. + * + * @return true, if is custom theme + */ + public boolean isCustomTheme() { + return (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())); + } + + public List getTemplates() { + return templates; + } + + public void setTemplates(List templates) { + this.templates = templates; + } + + public Map getAvailableActions() { + return availableActions; + } + + public void setAvailableActions(Map availableActions) { + this.availableActions = availableActions; + } + + public String getNewTmplName() { + return newTmplName; + } + + public void setNewTmplName(String newTmplName) { + this.newTmplName = newTmplName; + } + + public ComponentType getNewTmplAction() { + return newTmplAction; + } + + public void setNewTmplAction(ComponentType newTmplAction) { + this.newTmplAction = newTmplAction; + } + + public String getRemoveId() { + return removeId; + } + + public void setRemoveId(String removeId) { + this.removeId = removeId; + } +} diff --git a/core-codemods/src/test/resources/codeql-log-injection/Templates.java.before b/core-codemods/src/test/resources/codeql-log-injection/Templates.java.before new file mode 100644 index 000000000..4cee7dae5 --- /dev/null +++ b/core-codemods/src/test/resources/codeql-log-injection/Templates.java.before @@ -0,0 +1,342 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. The ASF licenses this file to You + * under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. For additional information regarding + * copyright in this work, please see the NOTICE file in the top level + * directory of this distribution. + */ + +package org.apache.roller.weblogger.ui.struts2.editor; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.roller.util.RollerConstants; +import org.apache.roller.weblogger.WebloggerException; +import org.apache.roller.weblogger.business.WeblogManager; +import org.apache.roller.weblogger.business.WebloggerFactory; +import org.apache.roller.weblogger.pojos.*; +import org.apache.roller.weblogger.pojos.TemplateRendition.RenditionType; +import org.apache.roller.weblogger.pojos.TemplateRendition.TemplateLanguage; +import org.apache.roller.weblogger.pojos.ThemeTemplate.ComponentType; +import org.apache.roller.weblogger.ui.struts2.util.UIAction; +import org.apache.roller.weblogger.util.cache.CacheManager; +import org.apache.struts2.convention.annotation.AllowedMethods; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; + +/** + * Templates listing page. + */ +// TODO: make this work @AllowedMethods({"execute","add"}) +public class Templates extends UIAction { + + private static final Log log = LogFactory.getLog(Templates.class); + + // list of templates to display + private List templates = Collections.emptyList(); + + // list of template action types user is allowed to create + private Map availableActions = Collections.emptyMap(); + + // name and action of new template if we are adding a template + private String newTmplName = null; + private ComponentType newTmplAction = null; + + // id of template to remove + private String removeId = null; + + public Templates() { + this.actionName = "templates"; + this.desiredMenu = "editor"; + this.pageTitle = "pagesForm.title"; + } + + @Override + public String execute() { + + // query for templates list + try { + + // get current list of templates, minus custom stylesheet + List raw = WebloggerFactory.getWeblogger() + .getWeblogManager().getTemplates(getActionWeblog()); + List pages = new ArrayList<>(raw); + + // Remove style sheet from list so not to show when theme is + // selected in shared theme mode + if (getActionWeblog().getTheme().getStylesheet() != null) { + pages.remove(WebloggerFactory.getWeblogger().getWeblogManager() + .getTemplateByLink(getActionWeblog(), getActionWeblog().getTheme().getStylesheet().getLink())); + } + setTemplates(pages); + + // build list of action types that may be added + Map actionsMap = new EnumMap<>(ComponentType.class); + addComponentTypeToMap(actionsMap, ComponentType.CUSTOM); + + if (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) { + + // if the weblog is using a custom theme then determine which + // action templates are still available to be created + addComponentTypeToMap(actionsMap, ComponentType.PERMALINK); + addComponentTypeToMap(actionsMap, ComponentType.SEARCH); + addComponentTypeToMap(actionsMap, ComponentType.WEBLOG); + addComponentTypeToMap(actionsMap, ComponentType.TAGSINDEX); + + for (WeblogTemplate tmpPage : getTemplates()) { + if (!ComponentType.CUSTOM.equals(tmpPage.getAction())) { + actionsMap.remove(tmpPage.getAction()); + } + } + } else { + // Make sure we have an option for the default web page + addComponentTypeToMap(actionsMap, ComponentType.WEBLOG); + if (getNewTmplAction() == null) { + setNewTmplAction(ComponentType.WEBLOG); + } + for (WeblogTemplate tmpPage : getTemplates()) { + if (ComponentType.WEBLOG.equals(tmpPage.getAction())) { + actionsMap.remove(ComponentType.WEBLOG); + setNewTmplAction(null); + break; + } + } + } + setAvailableActions(actionsMap); + + } catch (WebloggerException ex) { + log.error("Error getting templates for weblog - " + + getActionWeblog().getHandle(), ex); + addError("Error getting template list - check Roller logs"); + } + + return LIST; + } + + private void addComponentTypeToMap(Map map, ComponentType component) { + map.put(component, component.getReadableName()); + } + + /** + * Save a new template. + */ + public String add() { + + // validation + myValidate(); + + if (!hasActionErrors()) { + try { + + WeblogTemplate newTemplate = new WeblogTemplate(); + newTemplate.setWeblog(getActionWeblog()); + newTemplate.setAction(getNewTmplAction()); + newTemplate.setName(getNewTmplName()); + newTemplate.setHidden(false); + newTemplate.setNavbar(false); + newTemplate.setLastModified(new Date()); + + if (ComponentType.CUSTOM.equals(getNewTmplAction())) { + newTemplate.setLink(getNewTmplName()); + } + + // Make sure we have always have a Weblog main page. Stops + // deleting main page in custom theme mode also. + if (ComponentType.WEBLOG.equals(getNewTmplAction())) { + newTemplate.setName(WeblogTemplate.DEFAULT_PAGE); + } + + // save the new Template + WebloggerFactory.getWeblogger().getWeblogManager().saveTemplate(newTemplate); + + // Create weblog template renditions for available types. + CustomTemplateRendition standardRendition = + new CustomTemplateRendition( newTemplate, RenditionType.STANDARD); + standardRendition.setTemplate(getText("pageForm.newTemplateContent")); + standardRendition.setTemplateLanguage(TemplateLanguage.VELOCITY); + WebloggerFactory.getWeblogger().getWeblogManager().saveTemplateRendition(standardRendition); + + /* TODO: need a way for user to specify dual or single template via UI + CustomTemplateRendition mobileRendition = new CustomTemplateRendition( + newTemplate.getId(), RenditionType.MOBILE); + mobileRendition.setTemplate(newTemplate.getContents()); + mobileRendition.setTemplateLanguage(TemplateLanguage.VELOCITY); + WebloggerFactory.getWeblogger().getWeblogManager() + .saveTemplateRendition(mobileRendition); + */ + + // if this person happened to create a Weblog template from + // scratch then make sure and set the defaultPageId. + if (WeblogTemplate.DEFAULT_PAGE.equals(newTemplate.getName())) { + WebloggerFactory.getWeblogger().getWeblogManager().saveWeblog(getActionWeblog()); + } + + // flush results to db + WebloggerFactory.getWeblogger().flush(); + + // reset form fields + setNewTmplName(null); + setNewTmplAction(null); + + } catch (WebloggerException ex) { + log.error("Error adding new template for weblog - " + getActionWeblog().getHandle(), ex); + addError("Error adding new template - check Roller logs"); + } + } + + return execute(); + } + + /** + * Remove a new template. + */ + public String remove() { + + WeblogTemplate template = null; + try { + template = WebloggerFactory.getWeblogger().getWeblogManager().getTemplate(getRemoveId()); + } catch (WebloggerException e) { + addError("Error deleting template - check Roller logs"); + } + + if (template != null) { + try { + if (!template.isRequired() + || !WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) { + + WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager(); + + // if weblog template remove custom style sheet also + if (template.getName().equals(WeblogTemplate.DEFAULT_PAGE)) { + + ThemeTemplate stylesheet = getActionWeblog().getTheme().getStylesheet(); + + // Delete style sheet if the same name + if (stylesheet != null + && getActionWeblog().getTheme().getStylesheet() != null + && stylesheet.getLink().equals( + getActionWeblog().getTheme().getStylesheet().getLink())) { + + // Same so OK to delete + WeblogTemplate css = + mgr.getTemplateByLink(getActionWeblog(), stylesheet.getLink()); + + if (css != null) { + mgr.removeTemplate(css); + } + } + } + + // notify cache + CacheManager.invalidate(template); + mgr.removeTemplate(template); + WebloggerFactory.getWeblogger().flush(); + + } else { + addError("editPages.remove.requiredTemplate"); + } + + } catch (Exception ex) { + log.error("Error removing page - " + getRemoveId(), ex); + addError("editPages.remove.error"); + } + } else { + addError("editPages.remove.error"); + } + + return execute(); + } + + // validation when adding a new template + private void myValidate() { + + // make sure name is non-null and within proper size + if (StringUtils.isEmpty(getNewTmplName())) { + addError("Template.error.nameNull"); + } else if (getNewTmplName().length() > RollerConstants.TEXTWIDTH_255) { + addError("Template.error.nameSize"); + } + + // make sure action is a valid + if (getNewTmplAction() == null) { + addError("Template.error.actionNull"); + } + + // check if template by that name already exists + try { + WeblogTemplate existingPage = WebloggerFactory.getWeblogger().getWeblogManager() + .getTemplateByName(getActionWeblog(), getNewTmplName()); + if (existingPage != null) { + addError("pagesForm.error.alreadyExists", getNewTmplName()); + } + } catch (WebloggerException ex) { + log.error("Error checking for existing template", ex); + } + + } + + /** + * Checks if is custom theme. + * + * @return true, if is custom theme + */ + public boolean isCustomTheme() { + return (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())); + } + + public List getTemplates() { + return templates; + } + + public void setTemplates(List templates) { + this.templates = templates; + } + + public Map getAvailableActions() { + return availableActions; + } + + public void setAvailableActions(Map availableActions) { + this.availableActions = availableActions; + } + + public String getNewTmplName() { + return newTmplName; + } + + public void setNewTmplName(String newTmplName) { + this.newTmplName = newTmplName; + } + + public ComponentType getNewTmplAction() { + return newTmplAction; + } + + public void setNewTmplAction(ComponentType newTmplAction) { + this.newTmplAction = newTmplAction; + } + + public String getRemoveId() { + return removeId; + } + + public void setRemoveId(String removeId) { + this.removeId = removeId; + } +} diff --git a/core-codemods/src/test/resources/codeql-log-injection/out.sarif b/core-codemods/src/test/resources/codeql-log-injection/out.sarif new file mode 100644 index 000000000..f1de47b89 --- /dev/null +++ b/core-codemods/src/test/resources/codeql-log-injection/out.sarif @@ -0,0 +1,153017 @@ +{ + "runs": [ + { + "artifacts": [ + { + "location": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + } + }, + { + "location": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + } + }, + { + "location": { + "index": 2, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java" + } + }, + { + "location": { + "index": 3, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java" + } + }, + { + "location": { + "index": 4, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java" + } + }, + { + "location": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + } + }, + { + "location": { + "index": 6, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + } + }, + { + "location": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + } + }, + { + "location": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + } + }, + { + "location": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + } + }, + { + "location": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + } + }, + { + "location": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + } + }, + { + "location": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + } + }, + { + "location": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + } + }, + { + "location": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + } + }, + { + "location": { + "index": 15, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java" + } + }, + { + "location": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + } + }, + { + "location": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + } + }, + { + "location": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + } + }, + { + "location": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + } + }, + { + "location": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + } + }, + { + "location": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + } + }, + { + "location": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + } + }, + { + "location": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + } + }, + { + "location": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + } + }, + { + "location": { + "index": 25, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java" + } + }, + { + "location": { + "index": 26, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java" + } + }, + { + "location": { + "index": 27, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java" + } + }, + { + "location": { + "index": 28, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java" + } + }, + { + "location": { + "index": 29, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java" + } + }, + { + "location": { + "index": 30, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java" + } + }, + { + "location": { + "index": 31, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java" + } + }, + { + "location": { + "index": 32, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java" + } + }, + { + "location": { + "index": 33, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java" + } + }, + { + "location": { + "index": 34, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java" + } + }, + { + "location": { + "index": 35, + "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java" + } + }, + { + "location": { + "index": 36, + "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java" + } + }, + { + "location": { + "index": 37, + "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java" + } + }, + { + "location": { + "index": 38, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java" + } + }, + { + "location": { + "index": 39, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java" + } + }, + { + "location": { + "index": 40, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java" + } + }, + { + "location": { + "index": 41, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java" + } + }, + { + "location": { + "index": 42, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java" + } + }, + { + "location": { + "index": 43, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java" + } + }, + { + "location": { + "index": 44, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java" + } + }, + { + "location": { + "index": 45, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java" + } + }, + { + "location": { + "index": 46, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java" + } + }, + { + "location": { + "index": 47, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java" + } + }, + { + "location": { + "index": 48, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java" + } + }, + { + "location": { + "index": 49, + "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java" + } + }, + { + "location": { + "index": 50, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java" + } + }, + { + "location": { + "index": 51, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java" + } + }, + { + "location": { + "index": 52, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java" + } + }, + { + "location": { + "index": 53, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java" + } + }, + { + "location": { + "index": 54, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java" + } + }, + { + "location": { + "index": 55, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java" + } + }, + { + "location": { + "index": 56, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java" + } + }, + { + "location": { + "index": 57, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java" + } + }, + { + "location": { + "index": 58, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java" + } + }, + { + "location": { + "index": 59, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java" + } + }, + { + "location": { + "index": 60, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java" + } + }, + { + "location": { + "index": 61, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/PingTarget.java" + } + }, + { + "location": { + "index": 62, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java" + } + }, + { + "location": { + "index": 63, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java" + } + }, + { + "location": { + "index": 64, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java" + } + }, + { + "location": { + "index": 65, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java" + } + }, + { + "location": { + "index": 66, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java" + } + }, + { + "location": { + "index": 67, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java" + } + }, + { + "location": { + "index": 68, + "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java" + } + }, + { + "location": { + "index": 69, + "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java" + } + }, + { + "location": { + "index": 70, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java" + } + }, + { + "location": { + "index": 71, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java" + } + }, + { + "location": { + "index": 72, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java" + } + }, + { + "location": { + "index": 73, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java" + } + }, + { + "location": { + "index": 74, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java" + } + }, + { + "location": { + "index": 75, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java" + } + }, + { + "location": { + "index": 76, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java" + } + }, + { + "location": { + "index": 77, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java" + } + }, + { + "location": { + "index": 78, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java" + } + }, + { + "location": { + "index": 79, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java" + } + }, + { + "location": { + "index": 80, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java" + } + }, + { + "location": { + "index": 81, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java" + } + }, + { + "location": { + "index": 82, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java" + } + }, + { + "location": { + "index": 83, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java" + } + }, + { + "location": { + "index": 84, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java" + } + }, + { + "location": { + "index": 85, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java" + } + }, + { + "location": { + "index": 86, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java" + } + }, + { + "location": { + "index": 87, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java" + } + }, + { + "location": { + "index": 88, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java" + } + }, + { + "location": { + "index": 89, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java" + } + }, + { + "location": { + "index": 90, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java" + } + }, + { + "location": { + "index": 91, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java" + } + }, + { + "location": { + "index": 92, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java" + } + }, + { + "location": { + "index": 93, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java" + } + }, + { + "location": { + "index": 94, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java" + } + }, + { + "location": { + "index": 95, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java" + } + }, + { + "location": { + "index": 96, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetBean.java" + } + }, + { + "location": { + "index": 97, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java" + } + }, + { + "location": { + "index": 98, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java" + } + }, + { + "location": { + "index": 99, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java" + } + }, + { + "location": { + "index": 100, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java" + } + }, + { + "location": { + "index": 101, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java" + } + }, + { + "location": { + "index": 102, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java" + } + }, + { + "location": { + "index": 103, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java" + } + }, + { + "location": { + "index": 104, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java" + } + }, + { + "location": { + "index": 105, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java" + } + }, + { + "location": { + "index": 106, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java" + } + }, + { + "location": { + "index": 107, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java" + } + }, + { + "location": { + "index": 108, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java" + } + }, + { + "location": { + "index": 109, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java" + } + }, + { + "location": { + "index": 110, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java" + } + }, + { + "location": { + "index": 111, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java" + } + }, + { + "location": { + "index": 112, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java" + } + }, + { + "location": { + "index": 113, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java" + } + }, + { + "location": { + "index": 114, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java" + } + }, + { + "location": { + "index": 115, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java" + } + }, + { + "location": { + "index": 116, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java" + } + }, + { + "location": { + "index": 117, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java" + } + }, + { + "location": { + "index": 118, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java" + } + }, + { + "location": { + "index": 119, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java" + } + }, + { + "location": { + "index": 120, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java" + } + }, + { + "location": { + "index": 121, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java" + } + }, + { + "location": { + "index": 122, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java" + } + }, + { + "location": { + "index": 123, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java" + } + }, + { + "location": { + "index": 124, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java" + } + }, + { + "location": { + "index": 125, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java" + } + }, + { + "location": { + "index": 126, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java" + } + }, + { + "location": { + "index": 127, + "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java" + } + }, + { + "location": { + "index": 128, + "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java" + } + } + ], + "automationDetails": { + "id": ".github/workflows/codeql-analysis.yml:analyze/language:java/" + }, + "conversion": { + "tool": { + "driver": { + "name": "GitHub Code Scanning" + } + } + }, + "properties": { + "codeqlConfigSummary": { + "queries": [ + { + "type": "builtinSuite", + "uses": "security-extended" + } + ] + } + }, + "results": [ + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "folderId : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 28, + "endLine": 49, + "startColumn": 20, + "startLine": 49 + } + } + } + }, + { + "location": { + "message": { + "text": "folderId : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 52, + "endLine": 131, + "startColumn": 44, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "replace(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 70, + "endLine": 131, + "startColumn": 44, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "replace(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 88, + "endLine": 131, + "startColumn": 44, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "sanetizedFolderID" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 76, + "endLine": 133, + "startColumn": 59, + "startLine": 133 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "c498a306-76e0-47f9-9463-15219a9b5131", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 76, + "endLine": 133, + "startColumn": 59, + "startLine": 133 + } + } + } + ], + "message": { + "text": "This header depends on a [user-provided value](1), which may cause a response-splitting vulnerability." + }, + "partialFingerprints": { + "primaryLocationLineHash": "a43352b656264e63:1" + }, + "properties": { + "github/alertNumber": 8, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/8" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java" + }, + "region": { + "endColumn": 28, + "endLine": 49, + "startColumn": 20, + "startLine": 49 + } + } + } + ], + "rule": { + "id": "java/http-response-splitting", + "toolComponent": { + "index": 0 + }, + "index": 38 + }, + "ruleId": "java/http-response-splitting" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getParameter(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 65, + "endLine": 127, + "startColumn": 27, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "callback" + }, + "physicalLocation": { + "artifactLocation": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 52, + "endLine": 155, + "startColumn": 44, + "startLine": 155 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "413edc96-87e6-4268-aea7-c7363dd8e440", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 52, + "endLine": 155, + "startColumn": 44, + "startLine": 155 + } + } + } + ], + "message": { + "text": "This header depends on a [user-provided value](1), which may cause a response-splitting vulnerability." + }, + "partialFingerprints": { + "primaryLocationLineHash": "41fbc440cf27dfd0:1" + }, + "properties": { + "github/alertNumber": 9, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/9" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 65, + "endLine": 127, + "startColumn": 27, + "startLine": 127 + } + } + } + ], + "rule": { + "id": "java/http-response-splitting", + "toolComponent": { + "index": 0 + }, + "index": 38 + }, + "ruleId": "java/http-response-splitting" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "randomAlphanumeric(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 3, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java" + }, + "region": { + "endColumn": 80, + "endLine": 161, + "startColumn": 39, + "startLine": 161 + } + } + } + }, + { + "location": { + "message": { + "text": "randomString : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 3, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java" + }, + "region": { + "endColumn": 48, + "endLine": 162, + "startColumn": 36, + "startLine": 162 + } + } + } + }, + { + "location": { + "message": { + "text": "newPassword : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 2, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java" + }, + "region": { + "endColumn": 49, + "endLine": 119, + "startColumn": 31, + "startLine": 119 + } + } + } + }, + { + "location": { + "message": { + "text": "newPassword" + }, + "physicalLocation": { + "artifactLocation": { + "index": 2, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java" + }, + "region": { + "endColumn": 47, + "endLine": 121, + "startColumn": 36, + "startLine": 121 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "randomAlphanumeric(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 4, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java" + }, + "region": { + "endColumn": 80, + "endLine": 110, + "startColumn": 39, + "startLine": 110 + } + } + } + }, + { + "location": { + "message": { + "text": "randomString : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 4, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java" + }, + "region": { + "endColumn": 56, + "endLine": 111, + "startColumn": 44, + "startLine": 111 + } + } + } + }, + { + "location": { + "message": { + "text": "newPassword : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 2, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java" + }, + "region": { + "endColumn": 49, + "endLine": 119, + "startColumn": 31, + "startLine": 119 + } + } + } + }, + { + "location": { + "message": { + "text": "newPassword" + }, + "physicalLocation": { + "artifactLocation": { + "index": 2, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java" + }, + "region": { + "endColumn": 47, + "endLine": 121, + "startColumn": 36, + "startLine": 121 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "3d1dd5ee-a85c-4f5f-bc3b-11850bf129c5", + "level": "warning", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 2, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java" + }, + "region": { + "endColumn": 47, + "endLine": 121, + "startColumn": 36, + "startLine": 121 + } + } + } + ], + "message": { + "text": "Potential Insecure randomness due to a [Insecure randomness source.](1).\nPotential Insecure randomness due to a [Insecure randomness source.](2)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "ebe2869d4f29cd7e:1" + }, + "properties": { + "github/alertNumber": 10, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/10" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "Insecure randomness source." + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java" + }, + "region": { + "endColumn": 80, + "endLine": 161, + "startColumn": 39, + "startLine": 161 + } + } + }, + { + "id": 2, + "message": { + "text": "Insecure randomness source." + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java" + }, + "region": { + "endColumn": 80, + "endLine": 110, + "startColumn": 39, + "startLine": 110 + } + } + } + ], + "rule": { + "id": "java/insecure-randomness", + "toolComponent": { + "index": 0 + }, + "index": 48 + }, + "ruleId": "java/insecure-randomness" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "randomAlphanumeric(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 6, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + }, + "region": { + "endColumn": 76, + "endLine": 370, + "startColumn": 35, + "startLine": 370 + } + } + } + }, + { + "location": { + "message": { + "text": "randomString : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 6, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + }, + "region": { + "endColumn": 51, + "endLine": 371, + "startColumn": 39, + "startLine": 371 + } + } + } + }, + { + "location": { + "message": { + "text": "passwordText : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + }, + "region": { + "endColumn": 52, + "endLine": 121, + "startColumn": 33, + "startLine": 121 + } + } + } + }, + { + "location": { + "message": { + "text": "passwordText" + }, + "physicalLocation": { + "artifactLocation": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + }, + "region": { + "endColumn": 41, + "endLine": 122, + "startColumn": 29, + "startLine": 122 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "b3ef0f14-e0ef-4bcf-81ff-a44c55983f9a", + "level": "warning", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + }, + "region": { + "endColumn": 41, + "endLine": 122, + "startColumn": 29, + "startLine": 122 + } + } + } + ], + "message": { + "text": "Potential Insecure randomness due to a [Insecure randomness source.](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "a706f813f09b282d:1" + }, + "properties": { + "github/alertNumber": 11, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/11" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "Insecure randomness source." + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + }, + "region": { + "endColumn": 76, + "endLine": 370, + "startColumn": 35, + "startLine": 370 + } + } + } + ], + "rule": { + "id": "java/insecure-randomness", + "toolComponent": { + "index": 0 + }, + "index": 48 + }, + "ruleId": "java/insecure-randomness" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "randomAlphanumeric(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 6, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + }, + "region": { + "endColumn": 76, + "endLine": 370, + "startColumn": 35, + "startLine": 370 + } + } + } + }, + { + "location": { + "message": { + "text": "randomString : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 6, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + }, + "region": { + "endColumn": 54, + "endLine": 372, + "startColumn": 42, + "startLine": 372 + } + } + } + }, + { + "location": { + "message": { + "text": "passwordConfirm : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + }, + "region": { + "endColumn": 58, + "endLine": 129, + "startColumn": 36, + "startLine": 129 + } + } + } + }, + { + "location": { + "message": { + "text": "passwordConfirm" + }, + "physicalLocation": { + "artifactLocation": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + }, + "region": { + "endColumn": 47, + "endLine": 130, + "startColumn": 32, + "startLine": 130 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "c9fcc815-1dd2-4645-9828-afc3711a60c3", + "level": "warning", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 5, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java" + }, + "region": { + "endColumn": 47, + "endLine": 130, + "startColumn": 32, + "startLine": 130 + } + } + } + ], + "message": { + "text": "Potential Insecure randomness due to a [Insecure randomness source.](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "a7e8967f80765bad:1" + }, + "properties": { + "github/alertNumber": 12, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/12" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "Insecure randomness source." + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java" + }, + "region": { + "endColumn": 76, + "endLine": 370, + "startColumn": 35, + "startLine": 370 + } + } + } + ], + "rule": { + "id": "java/insecure-randomness", + "toolComponent": { + "index": 0 + }, + "index": 48 + }, + "ruleId": "java/insecure-randomness" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getParameter(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 65, + "endLine": 127, + "startColumn": 27, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "callback" + }, + "physicalLocation": { + "artifactLocation": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 52, + "endLine": 155, + "startColumn": 44, + "startLine": 155 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "24ce1c5a-2764-4315-bc16-8c2359f77597", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 1, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 52, + "endLine": 155, + "startColumn": 44, + "startLine": 155 + } + } + } + ], + "message": { + "text": "Untrusted URL redirection depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "41fbc440cf27dfd0:1" + }, + "properties": { + "github/alertNumber": 13, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/13" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java" + }, + "region": { + "endColumn": 65, + "endLine": 127, + "startColumn": 27, + "startLine": 127 + } + } + } + ], + "rule": { + "id": "java/unvalidated-url-redirection", + "toolComponent": { + "index": 0 + }, + "index": 108 + }, + "ruleId": "java/unvalidated-url-redirection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 166, + "startColumn": 23, + "startLine": 166 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 311, + "startColumn": 16, + "startLine": 311 + } + } + } + }, + { + "location": { + "message": { + "text": "computePrevMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 188, + "startColumn": 41, + "startLine": 188 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 190, + "startColumn": 26, + "startLine": 188 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 75, + "endLine": 207, + "startColumn": 29, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 21, + "endLine": 207, + "startColumn": 13, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 311, + "startColumn": 16, + "startLine": 311 + } + } + } + }, + { + "location": { + "message": { + "text": "computePrevMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 188, + "startColumn": 41, + "startLine": 188 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 190, + "startColumn": 26, + "startLine": 188 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 273, + "startColumn": 23, + "startLine": 273 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 311, + "startColumn": 16, + "startLine": 311 + } + } + } + }, + { + "location": { + "message": { + "text": "computePrevMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 188, + "startColumn": 41, + "startLine": 188 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 190, + "startColumn": 26, + "startLine": 188 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 237, + "startColumn": 25, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 237, + "startColumn": 9, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 163, + "startColumn": 23, + "startLine": 163 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 311, + "startColumn": 16, + "startLine": 311 + } + } + } + }, + { + "location": { + "message": { + "text": "computePrevMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 188, + "startColumn": 41, + "startLine": 188 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 190, + "startColumn": 26, + "startLine": 188 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "b8d55258-1cc7-481d-bb13-f323fc6f5f7b", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 190, + "startColumn": 26, + "startLine": 188 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "cccb6385104d4c00:1" + }, + "properties": { + "github/alertNumber": 14, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/14" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 166, + "startColumn": 23, + "startLine": 166 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 306, + "startColumn": 16, + "startLine": 306 + } + } + } + }, + { + "location": { + "message": { + "text": "computeNextMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 194, + "startColumn": 42, + "startLine": 194 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 196, + "startColumn": 26, + "startLine": 194 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 75, + "endLine": 207, + "startColumn": 29, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 21, + "endLine": 207, + "startColumn": 13, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 306, + "startColumn": 16, + "startLine": 306 + } + } + } + }, + { + "location": { + "message": { + "text": "computeNextMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 194, + "startColumn": 42, + "startLine": 194 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 196, + "startColumn": 26, + "startLine": 194 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 273, + "startColumn": 23, + "startLine": 273 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 306, + "startColumn": 16, + "startLine": 306 + } + } + } + }, + { + "location": { + "message": { + "text": "computeNextMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 194, + "startColumn": 42, + "startLine": 194 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 196, + "startColumn": 26, + "startLine": 194 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 237, + "startColumn": 25, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 237, + "startColumn": 9, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 163, + "startColumn": 23, + "startLine": 163 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 49, + "endLine": 306, + "startColumn": 16, + "startLine": 306 + } + } + } + }, + { + "location": { + "message": { + "text": "computeNextMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 194, + "startColumn": 42, + "startLine": 194 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 196, + "startColumn": 26, + "startLine": 194 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "ccfbc6bd-5815-4972-af11-45b2ed7fc423", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 196, + "startColumn": 26, + "startLine": 194 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "df1362749a3e519c:1" + }, + "properties": { + "github/alertNumber": 15, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/15" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 134, + "endLine": 319, + "startColumn": 19, + "startLine": 319 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 16, + "endLine": 324, + "startColumn": 13, + "startLine": 324 + } + } + } + }, + { + "location": { + "message": { + "text": "computeTodayMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 63, + "endLine": 247, + "startColumn": 35, + "startLine": 247 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 28, + "endLine": 250, + "startColumn": 22, + "startLine": 247 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 75, + "endLine": 207, + "startColumn": 29, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 21, + "endLine": 207, + "startColumn": 13, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 322, + "startColumn": 19, + "startLine": 322 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 16, + "endLine": 324, + "startColumn": 13, + "startLine": 324 + } + } + } + }, + { + "location": { + "message": { + "text": "computeTodayMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 63, + "endLine": 247, + "startColumn": 35, + "startLine": 247 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 28, + "endLine": 250, + "startColumn": 22, + "startLine": 247 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 134, + "endLine": 319, + "startColumn": 19, + "startLine": 319 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 16, + "endLine": 324, + "startColumn": 13, + "startLine": 324 + } + } + } + }, + { + "location": { + "message": { + "text": "computeTodayMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 63, + "endLine": 247, + "startColumn": 35, + "startLine": 247 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 28, + "endLine": 250, + "startColumn": 22, + "startLine": 247 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 237, + "startColumn": 25, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 237, + "startColumn": 9, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 322, + "startColumn": 19, + "startLine": 322 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 16, + "endLine": 324, + "startColumn": 13, + "startLine": 324 + } + } + } + }, + { + "location": { + "message": { + "text": "computeTodayMonthUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 63, + "endLine": 247, + "startColumn": 35, + "startLine": 247 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 28, + "endLine": 250, + "startColumn": 22, + "startLine": 247 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "977907bf-b617-4041-92a2-c608fddbfe4d", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 28, + "endLine": 250, + "startColumn": 22, + "startLine": 247 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "871c3cf166627615:1" + }, + "properties": { + "github/alertNumber": 16, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/16" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 95, + "startColumn": 24, + "startLine": 95 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 95, + "startColumn": 13, + "startLine": 95 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 114, + "startColumn": 16, + "startLine": 114 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 114, + "startColumn": 16, + "startLine": 114 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 114, + "startColumn": 16, + "startLine": 114 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogEntryURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 121, + "endLine": 747, + "startColumn": 16, + "startLine": 747 + } + } + } + }, + { + "location": { + "message": { + "text": "getPermalink(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 75, + "endLine": 106, + "startColumn": 31, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 106, + "startColumn": 21, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 230, + "startColumn": 63, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 94, + "endLine": 272, + "startColumn": 80, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 94, + "startColumn": 33, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "dayUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 34, + "endLine": 98, + "startColumn": 28, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 98, + "startColumn": 17, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 230, + "startColumn": 63, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 94, + "endLine": 272, + "startColumn": 80, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 58, + "endLine": 94, + "startColumn": 20, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 12, + "endLine": 94, + "startColumn": 9, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 15, + "endLine": 97, + "startColumn": 12, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 26, + "endLine": 97, + "startColumn": 12, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogEntryURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 121, + "endLine": 747, + "startColumn": 16, + "startLine": 747 + } + } + } + }, + { + "location": { + "message": { + "text": "getPermalink(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 75, + "endLine": 106, + "startColumn": 31, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 106, + "startColumn": 21, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 230, + "startColumn": 63, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 94, + "endLine": 272, + "startColumn": 80, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 94, + "startColumn": 33, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "dayUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 34, + "endLine": 98, + "startColumn": 28, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 98, + "startColumn": 17, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 70, + "endLine": 230, + "startColumn": 63, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 94, + "endLine": 272, + "startColumn": 80, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "8d609a04-8ac0-4e4b-8a74-ee3f97705fee", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "f797cd6a2e95a76a:1" + }, + "properties": { + "github/alertNumber": 17, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/17" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 166, + "startColumn": 23, + "startLine": 166 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 230, + "startColumn": 58, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 78, + "endLine": 272, + "startColumn": 68, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 44, + "endLine": 283, + "startColumn": 22, + "startLine": 283 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 75, + "endLine": 207, + "startColumn": 29, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 21, + "endLine": 207, + "startColumn": 13, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 230, + "startColumn": 58, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 78, + "endLine": 272, + "startColumn": 68, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 44, + "endLine": 283, + "startColumn": 22, + "startLine": 283 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 273, + "startColumn": 23, + "startLine": 273 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 230, + "startColumn": 58, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 78, + "endLine": 272, + "startColumn": 68, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 44, + "endLine": 283, + "startColumn": 22, + "startLine": 283 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 237, + "startColumn": 25, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 237, + "startColumn": 9, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 163, + "startColumn": 23, + "startLine": 163 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 230, + "startColumn": 58, + "startLine": 230 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 78, + "endLine": 272, + "startColumn": 68, + "startLine": 272 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 44, + "endLine": 283, + "startColumn": 22, + "startLine": 283 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "cb179b8f-1f44-4c66-b1b6-0d575e8b14d0", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 44, + "endLine": 283, + "startColumn": 22, + "startLine": 283 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "d06c87887323661e:1" + }, + "properties": { + "github/alertNumber": 18, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/18" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 95, + "startColumn": 24, + "startLine": 95 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 95, + "startColumn": 13, + "startLine": 95 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 114, + "startColumn": 16, + "startLine": 114 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 114, + "startColumn": 16, + "startLine": 114 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 114, + "startColumn": 16, + "startLine": 114 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogEntryURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 121, + "endLine": 747, + "startColumn": 16, + "startLine": 747 + } + } + } + }, + { + "location": { + "message": { + "text": "getPermalink(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 75, + "endLine": 106, + "startColumn": 31, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 106, + "startColumn": 21, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 228, + "startColumn": 54, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 85, + "endLine": 298, + "startColumn": 71, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 302, + "startColumn": 23, + "startLine": 302 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 94, + "startColumn": 33, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "dayUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 34, + "endLine": 98, + "startColumn": 28, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 98, + "startColumn": 17, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 228, + "startColumn": 54, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 85, + "endLine": 298, + "startColumn": 71, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 302, + "startColumn": 23, + "startLine": 302 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 58, + "endLine": 94, + "startColumn": 20, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 12, + "endLine": 94, + "startColumn": 9, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 15, + "endLine": 97, + "startColumn": 12, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 26, + "endLine": 97, + "startColumn": 12, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogEntryURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 121, + "endLine": 747, + "startColumn": 16, + "startLine": 747 + } + } + } + }, + { + "location": { + "message": { + "text": "getPermalink(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 75, + "endLine": 106, + "startColumn": 31, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 106, + "startColumn": 21, + "startLine": 106 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 228, + "startColumn": 54, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 85, + "endLine": 298, + "startColumn": 71, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 302, + "startColumn": 23, + "startLine": 302 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 94, + "startColumn": 33, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "dayUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 34, + "endLine": 98, + "startColumn": 28, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 98, + "startColumn": 17, + "startLine": 98 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 25, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 36, + "endLine": 127, + "startColumn": 23, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 23, + "endLine": 131, + "startColumn": 16, + "startLine": 131 + } + } + } + }, + { + "location": { + "message": { + "text": "getContent(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 64, + "endLine": 216, + "startColumn": 38, + "startLine": 216 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 61, + "endLine": 228, + "startColumn": 54, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "content : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 85, + "endLine": 298, + "startColumn": 71, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "content" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 302, + "startColumn": 23, + "startLine": 302 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "b00e10d5-5581-4b55-8703-9a43efa760b5", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 30, + "endLine": 302, + "startColumn": 23, + "startLine": 302 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "f797b1b59b078d8f:1" + }, + "properties": { + "github/alertNumber": 19, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/19" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 72, + "endLine": 138, + "startColumn": 26, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 18, + "endLine": 138, + "startColumn": 10, + "startLine": 138 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 181, + "startColumn": 16, + "startLine": 181 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 166, + "startColumn": 23, + "startLine": 166 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 52, + "endLine": 228, + "startColumn": 49, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 298, + "startColumn": 59, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 308, + "startColumn": 22, + "startLine": 307 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 46, + "endLine": 125, + "startColumn": 19, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 23, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "substring(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 54, + "endLine": 139, + "startColumn": 20, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 75, + "endLine": 207, + "startColumn": 29, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 21, + "endLine": 207, + "startColumn": 13, + "startLine": 207 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 243, + "startColumn": 16, + "startLine": 243 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 276, + "startColumn": 23, + "startLine": 276 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 52, + "endLine": 228, + "startColumn": 49, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 298, + "startColumn": 59, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 308, + "startColumn": 22, + "startLine": 307 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 26, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "trim(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 33, + "endLine": 127, + "startColumn": 19, + "startLine": 127 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 39, + "endLine": 134, + "startColumn": 36, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 40, + "endLine": 134, + "startColumn": 16, + "startLine": 134 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 63, + "startColumn": 28, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 20, + "endLine": 63, + "startColumn": 17, + "startLine": 63 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 16, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 182, + "startColumn": 25, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 182, + "startColumn": 9, + "startLine": 182 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 212, + "startColumn": 16, + "startLine": 212 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogCollectionURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 144, + "endLine": 273, + "startColumn": 23, + "startLine": 273 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 12, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 281, + "startColumn": 16, + "startLine": 281 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 52, + "endLine": 228, + "startColumn": 49, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 298, + "startColumn": 59, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 308, + "startColumn": 22, + "startLine": 307 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getRequestURL(...) : StringBuffer" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 76, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + }, + { + "location": { + "message": { + "text": "requestURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 135, + "endLine": 99, + "startColumn": 118, + "startLine": 99 + } + } + } + }, + { + "location": { + "message": { + "text": "fullUrl : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 47, + "endLine": 116, + "startColumn": 40, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 59, + "endLine": 137, + "startColumn": 49, + "startLine": 137 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 19, + "endLine": 141, + "startColumn": 16, + "startLine": 141 + } + } + } + }, + { + "location": { + "message": { + "text": "removeTrailingSlash(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 48, + "endLine": 116, + "startColumn": 20, + "startLine": 116 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 77, + "endLine": 88, + "startColumn": 16, + "startLine": 86 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 62, + "endLine": 66, + "startColumn": 34, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "absPath : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 8, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 69, + "endLine": 69, + "startColumn": 62, + "startLine": 69 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 56, + "endLine": 175, + "startColumn": 46, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 33, + "endLine": 176, + "startColumn": 30, + "startLine": 176 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 45, + "endLine": 51, + "startColumn": 27, + "startLine": 51 + } + } + } + }, + { + "location": { + "message": { + "text": "absoluteContextURL : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 9, + "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java" + }, + "region": { + "endColumn": 34, + "endLine": 195, + "startColumn": 16, + "startLine": 195 + } + } + } + }, + { + "location": { + "message": { + "text": "getAbsoluteContextURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 70, + "endLine": 58, + "startColumn": 24, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 16, + "endLine": 58, + "startColumn": 13, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "url : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 19, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 10, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java" + }, + "region": { + "endColumn": 74, + "endLine": 74, + "startColumn": 16, + "startLine": 74 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 63, + "endLine": 237, + "startColumn": 25, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 17, + "endLine": 237, + "startColumn": 9, + "startLine": 237 + } + } + } + }, + { + "location": { + "message": { + "text": "pathinfo : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 24, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "append(...) : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 68, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 13, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java" + }, + "region": { + "endColumn": 79, + "endLine": 260, + "startColumn": 16, + "startLine": 260 + } + } + } + }, + { + "location": { + "message": { + "text": "getWeblogPageURL(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 154, + "endLine": 163, + "startColumn": 23, + "startLine": 163 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 11, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java" + }, + "region": { + "endColumn": 19, + "endLine": 171, + "startColumn": 16, + "startLine": 171 + } + } + } + }, + { + "location": { + "message": { + "text": "computeUrl(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 72, + "endLine": 215, + "startColumn": 34, + "startLine": 215 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 52, + "endLine": 228, + "startColumn": 49, + "startLine": 228 + } + } + } + }, + { + "location": { + "message": { + "text": "url : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 69, + "endLine": 298, + "startColumn": 59, + "startLine": 298 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ..." + }, + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 308, + "startColumn": 22, + "startLine": 307 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "ad8e230a-a0d9-41f2-8e34-6ce267242137", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 7, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java" + }, + "region": { + "endColumn": 68, + "endLine": 308, + "startColumn": 22, + "startLine": 307 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "6d90bf8993f560aa:1" + }, + "properties": { + "github/alertNumber": 20, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/20" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java" + }, + "region": { + "endColumn": 65, + "endLine": 88, + "startColumn": 42, + "startLine": 88 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getParameter(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 58, + "endLine": 72, + "startColumn": 26, + "startLine": 72 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ... : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 29, + "endLine": 87, + "startColumn": 13, + "startLine": 87 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 5, + "endLine": 87, + "startColumn": 3, + "startLine": 87 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 12, + "endLine": 97, + "startColumn": 10, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 23, + "endLine": 97, + "startColumn": 10, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "getHtml(...)" + }, + "physicalLocation": { + "artifactLocation": { + "index": 15, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java" + }, + "region": { + "endColumn": 56, + "endLine": 66, + "startColumn": 21, + "startLine": 66 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "getParameter(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 58, + "endLine": 73, + "startColumn": 26, + "startLine": 73 + } + } + } + }, + { + "location": { + "message": { + "text": "... + ... : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 29, + "endLine": 94, + "startColumn": 13, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "sb [post update] : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 5, + "endLine": 94, + "startColumn": 3, + "startLine": 94 + } + } + } + }, + { + "location": { + "message": { + "text": "sb : StringBuilder" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 12, + "endLine": 97, + "startColumn": 10, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "toString(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 16, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 23, + "endLine": 97, + "startColumn": 10, + "startLine": 97 + } + } + } + }, + { + "location": { + "message": { + "text": "getHtml(...)" + }, + "physicalLocation": { + "artifactLocation": { + "index": 15, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java" + }, + "region": { + "endColumn": 56, + "endLine": 66, + "startColumn": 21, + "startLine": 66 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "50361d2b-b32f-43ff-bdbf-9305e326acd9", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 15, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java" + }, + "region": { + "endColumn": 56, + "endLine": 66, + "startColumn": 21, + "startLine": 66 + } + } + } + ], + "message": { + "text": "Cross-site scripting vulnerability due to a [user-provided value](1).\nCross-site scripting vulnerability due to a [user-provided value](2)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "e41b363d572cf6d8:1" + }, + "properties": { + "github/alertNumber": 21, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/21" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 58, + "endLine": 72, + "startColumn": 26, + "startLine": 72 + } + } + }, + { + "id": 2, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java" + }, + "region": { + "endColumn": 58, + "endLine": 73, + "startColumn": 26, + "startLine": 73 + } + } + } + ], + "rule": { + "id": "java/xss", + "toolComponent": { + "index": 0 + }, + "index": 114 + }, + "ruleId": "java/xss" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "opmlFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 26, + "endLine": 50, + "startColumn": 18, + "startLine": 50 + } + } + } + }, + { + "location": { + "message": { + "text": "opmlFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 24, + "endLine": 142, + "startColumn": 16, + "startLine": 142 + } + } + } + }, + { + "location": { + "message": { + "text": "getOpmlFile(...)" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 50, + "endLine": 81, + "startColumn": 37, + "startLine": 81 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "d4b093e7-7f81-401a-8dc6-d7d4dde45958", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 50, + "endLine": 81, + "startColumn": 37, + "startLine": 81 + } + } + } + ], + "message": { + "text": "This path depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "cf23dfd372a61ea3:1" + }, + "properties": { + "github/alertNumber": 22, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/22" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 26, + "endLine": 50, + "startColumn": 18, + "startLine": 50 + } + } + } + ], + "rule": { + "id": "java/path-injection", + "toolComponent": { + "index": 0 + }, + "index": 67 + }, + "ruleId": "java/path-injection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "opmlFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 26, + "endLine": 50, + "startColumn": 18, + "startLine": 50 + } + } + } + }, + { + "location": { + "message": { + "text": "opmlFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 24, + "endLine": 142, + "startColumn": 16, + "startLine": 142 + } + } + } + }, + { + "location": { + "message": { + "text": "getOpmlFile(...)" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 63, + "endLine": 86, + "startColumn": 50, + "startLine": 86 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "b8c2026d-080f-4154-92ff-e377d8b5ea0d", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 63, + "endLine": 86, + "startColumn": 50, + "startLine": 86 + } + } + } + ], + "message": { + "text": "This path depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "103f70b0007fdfad:1" + }, + "properties": { + "github/alertNumber": 23, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/23" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 26, + "endLine": 50, + "startColumn": 18, + "startLine": 50 + } + } + } + ], + "rule": { + "id": "java/path-injection", + "toolComponent": { + "index": 0 + }, + "index": 67 + }, + "ruleId": "java/path-injection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "opmlFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 26, + "endLine": 50, + "startColumn": 18, + "startLine": 50 + } + } + } + }, + { + "location": { + "message": { + "text": "opmlFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 24, + "endLine": 142, + "startColumn": 16, + "startLine": 142 + } + } + } + }, + { + "location": { + "message": { + "text": "getOpmlFile(...)" + }, + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 34, + "endLine": 112, + "startColumn": 21, + "startLine": 112 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "e305e5d4-3699-4c4f-8e16-42f22c937f11", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 17, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 34, + "endLine": 112, + "startColumn": 21, + "startLine": 112 + } + } + } + ], + "message": { + "text": "This path depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "9a91c0ae5a3ea9d:1" + }, + "properties": { + "github/alertNumber": 24, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/24" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java" + }, + "region": { + "endColumn": 26, + "endLine": 50, + "startColumn": 18, + "startLine": 50 + } + } + } + ], + "rule": { + "id": "java/path-injection", + "toolComponent": { + "index": 0 + }, + "index": 67 + }, + "ruleId": "java/path-injection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "uploadedFiles : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 33, + "endLine": 53, + "startColumn": 20, + "startLine": 53 + } + } + } + }, + { + "location": { + "message": { + "text": "uploadedFiles : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 29, + "endLine": 266, + "startColumn": 16, + "startLine": 266 + } + } + } + }, + { + "location": { + "message": { + "text": "getUploadedFiles(...) : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 48, + "endLine": 139, + "startColumn": 30, + "startLine": 139 + } + } + } + }, + { + "location": { + "message": { + "text": "...[...]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 58, + "endLine": 147, + "startColumn": 48, + "startLine": 147 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "77fbfcd2-d7b8-4eef-be68-e91f1fa3d446", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 58, + "endLine": 147, + "startColumn": 48, + "startLine": 147 + } + } + } + ], + "message": { + "text": "This path depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "77597f482b4d5d50:1" + }, + "properties": { + "github/alertNumber": 25, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/25" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 33, + "endLine": 53, + "startColumn": 20, + "startLine": 53 + } + } + } + ], + "rule": { + "id": "java/path-injection", + "toolComponent": { + "index": 0 + }, + "index": 67 + }, + "ruleId": "java/path-injection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "uploadedFiles : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 33, + "endLine": 53, + "startColumn": 20, + "startLine": 53 + } + } + } + }, + { + "location": { + "message": { + "text": "this.uploadedFiles : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 63, + "endLine": 173, + "startColumn": 45, + "startLine": 173 + } + } + } + }, + { + "location": { + "message": { + "text": "...[...]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 54, + "endLine": 175, + "startColumn": 33, + "startLine": 175 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "uploadedFiles : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 33, + "endLine": 53, + "startColumn": 20, + "startLine": 53 + } + } + } + }, + { + "location": { + "message": { + "text": "this.uploadedFiles : File[]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 51, + "endLine": 175, + "startColumn": 33, + "startLine": 175 + } + } + } + }, + { + "location": { + "message": { + "text": "...[...]" + }, + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 54, + "endLine": 175, + "startColumn": 33, + "startLine": 175 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "50d5c664-691f-4339-89f9-c872bdc2d37f", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 18, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 54, + "endLine": 175, + "startColumn": 33, + "startLine": 175 + } + } + } + ], + "message": { + "text": "This path depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "2b2bb9cdd3635201:1" + }, + "properties": { + "github/alertNumber": 26, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/26" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java" + }, + "region": { + "endColumn": 33, + "endLine": 53, + "startColumn": 20, + "startLine": 53 + } + } + } + ], + "rule": { + "id": "java/path-injection", + "toolComponent": { + "index": 0 + }, + "index": 67 + }, + "ruleId": "java/path-injection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "uploadedFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 47, + "startColumn": 18, + "startLine": 47 + } + } + } + }, + { + "location": { + "message": { + "text": "this.uploadedFile" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 66, + "endLine": 129, + "startColumn": 49, + "startLine": 129 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "uploadedFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 47, + "startColumn": 18, + "startLine": 47 + } + } + } + }, + { + "location": { + "message": { + "text": "uploadedFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 33, + "endLine": 125, + "startColumn": 21, + "startLine": 125 + } + } + } + }, + { + "location": { + "message": { + "text": "this.uploadedFile" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 66, + "endLine": 129, + "startColumn": 49, + "startLine": 129 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "uploadedFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 47, + "startColumn": 18, + "startLine": 47 + } + } + } + }, + { + "location": { + "message": { + "text": "this.uploadedFile : File" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 58, + "endLine": 126, + "startColumn": 41, + "startLine": 126 + } + } + } + }, + { + "location": { + "message": { + "text": "this.uploadedFile" + }, + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 66, + "endLine": 129, + "startColumn": 49, + "startLine": 129 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "2c46a696-dc8e-4fae-9331-76a7b8516a31", + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 19, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 66, + "endLine": 129, + "startColumn": 49, + "startLine": 129 + } + } + } + ], + "message": { + "text": "This path depends on a [user-provided value](1)." + }, + "partialFingerprints": { + "primaryLocationLineHash": "9449418b46954eb:1" + }, + "properties": { + "github/alertNumber": 27, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/27" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 47, + "startColumn": 18, + "startLine": 47 + } + } + } + ], + "rule": { + "id": "java/path-injection", + "toolComponent": { + "index": 0 + }, + "index": 67 + }, + "ruleId": "java/path-injection" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 988, + "startColumn": 34, + "startLine": 988 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 897, + "startColumn": 19, + "startLine": 897 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 26, + "endLine": 302, + "startColumn": 19, + "startLine": 302 + } + } + } + }, + { + "location": { + "message": { + "text": "this.text : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 25, + "endLine": 303, + "startColumn": 16, + "startLine": 303 + } + } + } + }, + { + "location": { + "message": { + "text": "getText(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 65, + "startColumn": 45, + "startLine": 65 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 41, + "endLine": 66, + "startColumn": 38, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 48, + "endLine": 41, + "startColumn": 38, + "startLine": 41 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 34, + "endLine": 52, + "startColumn": 31, + "startLine": 52 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 51, + "endLine": 61, + "startColumn": 41, + "startLine": 61 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 55, + "endLine": 62, + "startColumn": 52, + "startLine": 62 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 29, + "endLine": 107, + "startColumn": 24, + "startLine": 107 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 29, + "endLine": 107, + "startColumn": 24, + "startLine": 107 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 990, + "startColumn": 34, + "startLine": 990 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 40, + "endLine": 904, + "startColumn": 19, + "startLine": 904 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 29, + "endLine": 274, + "startColumn": 19, + "startLine": 274 + } + } + } + }, + { + "location": { + "message": { + "text": "summary : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 23, + "endLine": 275, + "startColumn": 16, + "startLine": 275 + } + } + } + }, + { + "location": { + "message": { + "text": "getSummary(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 65, + "startColumn": 45, + "startLine": 65 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 41, + "endLine": 66, + "startColumn": 38, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 48, + "endLine": 41, + "startColumn": 38, + "startLine": 41 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 22, + "endLine": 49, + "startColumn": 19, + "startLine": 49 + } + } + } + }, + { + "location": { + "message": { + "text": "replaceFirst(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 69, + "endLine": 49, + "startColumn": 19, + "startLine": 49 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 34, + "endLine": 52, + "startColumn": 31, + "startLine": 52 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 51, + "endLine": 61, + "startColumn": 41, + "startLine": 61 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 55, + "endLine": 62, + "startColumn": 52, + "startLine": 62 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 996, + "startColumn": 34, + "startLine": 996 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 40, + "endLine": 904, + "startColumn": 19, + "startLine": 904 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 29, + "endLine": 274, + "startColumn": 19, + "startLine": 274 + } + } + } + }, + { + "location": { + "message": { + "text": "summary : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 23, + "endLine": 275, + "startColumn": 16, + "startLine": 275 + } + } + } + }, + { + "location": { + "message": { + "text": "getSummary(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 65, + "startColumn": 45, + "startLine": 65 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 41, + "endLine": 66, + "startColumn": 38, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 48, + "endLine": 41, + "startColumn": 38, + "startLine": 41 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 34, + "endLine": 52, + "startColumn": 31, + "startLine": 52 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 51, + "endLine": 61, + "startColumn": 41, + "startLine": 61 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 55, + "endLine": 62, + "startColumn": 52, + "startLine": 62 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 1007, + "startColumn": 34, + "startLine": 1007 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 897, + "startColumn": 19, + "startLine": 897 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 26, + "endLine": 302, + "startColumn": 19, + "startLine": 302 + } + } + } + }, + { + "location": { + "message": { + "text": "this.text : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 25, + "endLine": 303, + "startColumn": 16, + "startLine": 303 + } + } + } + }, + { + "location": { + "message": { + "text": "getText(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 65, + "startColumn": 45, + "startLine": 65 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 23, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java" + }, + "region": { + "endColumn": 41, + "endLine": 66, + "startColumn": 38, + "startLine": 66 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 48, + "endLine": 41, + "startColumn": 38, + "startLine": 41 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 34, + "endLine": 52, + "startColumn": 31, + "startLine": 52 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 51, + "endLine": 61, + "startColumn": 41, + "startLine": 61 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 55, + "endLine": 62, + "startColumn": 52, + "startLine": 62 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "2c44ef16-ee39-43f4-a3b9-dd079f2e62a6", + "level": "warning", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 20, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 55, + "endLine": 62, + "startColumn": 52, + "startLine": 62 + } + } + } + ], + "message": { + "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with 'b' and with many repetitions of 'b'." + }, + "partialFingerprints": { + "primaryLocationLineHash": "f22c138a13ff3a37:1" + }, + "properties": { + "github/alertNumber": 28, + "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/28" + }, + "relatedLocations": [ + { + "id": 1, + "message": { + "text": "regular expression" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java" + }, + "region": { + "endColumn": 51, + "endLine": 38, + "startColumn": 33, + "startLine": 38 + } + } + }, + { + "id": 2, + "message": { + "text": "user-provided value" + }, + "physicalLocation": { + "artifactLocation": { + "index": 0, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + ], + "rule": { + "id": "java/polynomial-redos", + "toolComponent": { + "index": 0 + }, + "index": 68 + }, + "ruleId": "java/polynomial-redos" + }, + { + "codeFlows": [ + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 988, + "startColumn": 34, + "startLine": 988 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 897, + "startColumn": 19, + "startLine": 897 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 26, + "endLine": 302, + "startColumn": 19, + "startLine": 302 + } + } + } + }, + { + "location": { + "message": { + "text": "this.text : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 25, + "endLine": 303, + "startColumn": 16, + "startLine": 303 + } + } + } + }, + { + "location": { + "message": { + "text": "getText(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 57, + "startColumn": 45, + "startLine": 57 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 54, + "endLine": 61, + "startColumn": 51, + "startLine": 61 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 996, + "startColumn": 34, + "startLine": 996 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 40, + "endLine": 904, + "startColumn": 19, + "startLine": 904 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 29, + "endLine": 274, + "startColumn": 19, + "startLine": 274 + } + } + } + }, + { + "location": { + "message": { + "text": "summary : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 23, + "endLine": 275, + "startColumn": 16, + "startLine": 275 + } + } + } + }, + { + "location": { + "message": { + "text": "getSummary(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 57, + "startColumn": 45, + "startLine": 57 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 54, + "endLine": 61, + "startColumn": 51, + "startLine": 61 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 29, + "endLine": 107, + "startColumn": 24, + "startLine": 107 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 29, + "endLine": 107, + "startColumn": 24, + "startLine": 107 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 990, + "startColumn": 34, + "startLine": 990 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 40, + "endLine": 904, + "startColumn": 19, + "startLine": 904 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 29, + "endLine": 274, + "startColumn": 19, + "startLine": 274 + } + } + } + }, + { + "location": { + "message": { + "text": "summary : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 23, + "endLine": 275, + "startColumn": 16, + "startLine": 275 + } + } + } + }, + { + "location": { + "message": { + "text": "getSummary(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 35, + "endLine": 905, + "startColumn": 23, + "startLine": 905 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 57, + "startColumn": 45, + "startLine": 57 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 54, + "endLine": 61, + "startColumn": 51, + "startLine": 61 + } + } + } + } + ] + } + ] + }, + { + "threadFlows": [ + { + "locations": [ + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 30, + "endLine": 75, + "startColumn": 25, + "startLine": 75 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 21, + "endLine": 323, + "startColumn": 16, + "startLine": 323 + } + } + } + }, + { + "location": { + "message": { + "text": "getEntry(...) : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 63, + "endLine": 387, + "startColumn": 53, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 40, + "endLine": 58, + "startColumn": 22, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "tEntry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 27, + "endLine": 89, + "startColumn": 21, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 18, + "endLine": 89, + "startColumn": 13, + "startLine": 89 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this [Return] : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 21, + "endLine": 58, + "startColumn": 12, + "startLine": 58 + } + } + } + }, + { + "location": { + "message": { + "text": "new Trackback(...) : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 43, + "endLine": 388, + "startColumn": 39, + "startLine": 387 + } + } + } + }, + { + "location": { + "message": { + "text": "trackback : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 21, + "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java" + }, + "region": { + "endColumn": 36, + "endLine": 389, + "startColumn": 27, + "startLine": 389 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 31, + "endLine": 100, + "startColumn": 27, + "startLine": 100 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.field> : Trackback [entry] : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "entry : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 22, + "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java" + }, + "region": { + "endColumn": 70, + "endLine": 108, + "startColumn": 65, + "startLine": 108 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1018, + "startColumn": 19, + "startLine": 1018 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 36, + "endLine": 1019, + "startColumn": 16, + "startLine": 1019 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 33, + "endLine": 980, + "startColumn": 19, + "startLine": 980 + } + } + } + }, + { + "location": { + "message": { + "text": "this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 38, + "endLine": 1007, + "startColumn": 34, + "startLine": 1007 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 897, + "startColumn": 19, + "startLine": 897 + } + } + } + }, + { + "location": { + "message": { + "text": "this <.method> : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "parameter this : WeblogEntry" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 26, + "endLine": 302, + "startColumn": 19, + "startLine": 302 + } + } + } + }, + { + "location": { + "message": { + "text": "this.text : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 25, + "endLine": 303, + "startColumn": 16, + "startLine": 303 + } + } + } + }, + { + "location": { + "message": { + "text": "getText(...) : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 32, + "endLine": 898, + "startColumn": 23, + "startLine": 898 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 37, + "endLine": 943, + "startColumn": 27, + "startLine": 943 + } + } + } + }, + { + "location": { + "message": { + "text": "ret : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 14, + "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java" + }, + "region": { + "endColumn": 62, + "endLine": 960, + "startColumn": 59, + "startLine": 960 + } + } + } + }, + { + "location": { + "message": { + "text": "str : String" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 55, + "endLine": 57, + "startColumn": 45, + "startLine": 57 + } + } + } + }, + { + "location": { + "message": { + "text": "str" + }, + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 54, + "endLine": 61, + "startColumn": 51, + "startLine": 61 + } + } + } + } + ] + } + ] + } + ], + "correlationGuid": "d5f446d9-a37d-4b62-a4aa-ece4c8cd315d", + "level": "warning", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "index": 24, + "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java" + }, + "region": { + "endColumn": 54, + "endLine": 61, + "startColumn": 51, + "startLine": 61 + } + } + } + ], + "message": { + "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '' and with many repetitions of '
a'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "80ff14788737bca8:1"
+          },
+          "properties": {
+            "github/alertNumber": 29,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/29"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 38,
+                  "startColumn": 22,
+                  "startLine": 38
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 38,
+                  "startColumn": 29,
+                  "startLine": 38
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 996,
+                            "startColumn": 34,
+                            "startLine": 996
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 1007,
+                            "startColumn": 34,
+                            "startLine": 1007
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "46c2da2a-ba26-4d85-b11f-596590f9b2c1",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 24,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 68,
+                  "startColumn": 57,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '' and with many repetitions of 'a'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d309d833fb2b46b:1"
+          },
+          "properties": {
+            "github/alertNumber": 30,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/30"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 41,
+                  "startColumn": 24,
+                  "startLine": 41
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 41,
+                  "startColumn": 31,
+                  "startLine": 41
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "786674fd-a4f9-486d-bf33-72687af16673",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8a8c526b-7a2e-47e2-b7a3-0a25b01cd810",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 77,
+                  "endLine": 179,
+                  "startColumn": 68,
+                  "startLine": 179
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings with many repetitions of ' '."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7eba83359081407:1"
+          },
+          "properties": {
+            "github/alertNumber": 32,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/32"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 81,
+                  "endLine": 66,
+                  "startColumn": 77,
+                  "startLine": 66
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "76456cac-0fc2-4595-a262-d8cc1b049544",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 235,
+                  "startColumn": 67,
+                  "startLine": 235
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings with many repetitions of '!'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f77ea2ce3b67490a:1"
+          },
+          "properties": {
+            "github/alertNumber": 33,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/33"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 68,
+                  "startColumn": 67,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 413,
+                            "startColumn": 17,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 82,
+                            "startColumn": 40,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 109,
+                            "startColumn": 19,
+                            "startLine": 109
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openIdUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 110,
+                            "startColumn": 16,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getOpenIdUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 82,
+                            "startColumn": 40,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openidurl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 86,
+                            "startColumn": 47,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openIdUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 131,
+                            "startColumn": 30,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openIdUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 132,
+                            "startColumn": 63,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 413,
+                            "startColumn": 17,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "159eeb73-66aa-4f3d-b824-593b19b75d2a",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 249,
+                  "startColumn": 83,
+                  "startLine": 249
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](2) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](4) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](5) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](6) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](7) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](8) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](8) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d2f751956bb0d070:1"
+          },
+          "properties": {
+            "github/alertNumber": 34,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/34"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 75,
+                  "endLine": 70,
+                  "startColumn": 73,
+                  "startLine": 70
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 103,
+                  "endLine": 70,
+                  "startColumn": 98,
+                  "startLine": 70
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 8,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "73093385-e2a8-4d7a-98ba-cd762f11c9cf",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 106,
+                  "endLine": 290,
+                  "startColumn": 103,
+                  "startLine": 290
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings starting with '<' and with many repetitions of '<'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ea89bbca86ba4590:1"
+          },
+          "properties": {
+            "github/alertNumber": 35,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/35"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 64,
+                  "startColumn": 65,
+                  "startLine": 64
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "741b50ba-467e-4868-8dac-3c9ef0447000",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 308,
+                  "startColumn": 40,
+                  "startLine": 308
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings starting with '<' and with many repetitions of '<'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7fd366a6b63e95c3:1"
+          },
+          "properties": {
+            "github/alertNumber": 36,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/36"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 64,
+                  "startColumn": 65,
+                  "startLine": 64
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 102,
+                            "startColumn": 23,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 102,
+                            "startColumn": 48,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a25e3d9b-649b-4941-b955-38a73c737dee",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 49,
+                  "startColumn": 36,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1).\nThis regular expression is constructed from a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "77bb988d556b367:1"
+          },
+          "properties": {
+            "github/alertNumber": 37,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/37"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 102,
+                            "startColumn": 23,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 102,
+                            "startColumn": 48,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8d146220-954f-47f5-810d-f1e27809be9c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 66,
+                  "startColumn": 36,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1).\nThis regular expression is constructed from a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e97d22a8b2a0b291:1"
+          },
+          "properties": {
+            "github/alertNumber": 38,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/38"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 102,
+                            "startColumn": 23,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 102,
+                            "startColumn": 48,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d29b0cf5-db5b-4d43-b5c3-f1617b06bd87",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 71,
+                  "startColumn": 36,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1).\nThis regular expression is constructed from a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9713a8da9d6dd391:1"
+          },
+          "properties": {
+            "github/alertNumber": 39,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/39"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 55,
+                            "startColumn": 30,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 204,
+                            "startColumn": 16,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 195,
+                            "startColumn": 47,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 34,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 101,
+                            "startColumn": 19,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.bannedwordslist : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 34,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 16,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBannedwordslist(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 195,
+                            "startColumn": 47,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bannedwordslist : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 427,
+                            "startColumn": 9,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 431,
+                            "startColumn": 53,
+                            "startLine": 431
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new StringTokenizer(...) : StringTokenizer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 431,
+                            "startColumn": 33,
+                            "startLine": 431
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toker : StringTokenizer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 433,
+                            "startColumn": 28,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "nextToken(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 433,
+                            "startColumn": 28,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 433,
+                            "startColumn": 28,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 438,
+                            "startColumn": 48,
+                            "startLine": 438
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "54c3d5ef-3a2a-4786-a6e7-ef9a43941469",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 32,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 438,
+                  "startColumn": 48,
+                  "startLine": 438
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "41fca1ccdb5c516f:1"
+          },
+          "properties": {
+            "github/alertNumber": 40,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/40"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 55,
+                  "startColumn": 30,
+                  "startLine": 55
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 93,
+                            "startColumn": 30,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 228,
+                            "startColumn": 32,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 230,
+                            "startColumn": 68,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "create(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 230,
+                            "startColumn": 57,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 93,
+                            "startColumn": 30,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 228,
+                            "startColumn": 32,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 230,
+                            "startColumn": 68,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "create(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 230,
+                            "startColumn": 57,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "67cfd420-d358-4683-aab5-12db2c9f4652",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 230,
+                  "startColumn": 57,
+                  "startLine": 230
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential server-side request forgery due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "248fddc681a75a01:1"
+          },
+          "properties": {
+            "github/alertNumber": 41,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/41"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/ssrf",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 82
+          },
+          "ruleId": "java/ssrf"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 57,
+                            "startColumn": 65,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new URL(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 57,
+                            "startColumn": 57,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b84116d9-777c-4efb-90a2-09d3437d768b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 57,
+                  "startColumn": 57,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential server-side request forgery due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c240ab2d5b41ea5f:1"
+          },
+          "properties": {
+            "github/alertNumber": 42,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/42"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/ssrf",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 82
+          },
+          "ruleId": "java/ssrf"
+        },
+        {
+          "correlationGuid": "802c217d-515a-4eb2-9c11-4037b8710b37",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 40,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 147,
+                  "startColumn": 24,
+                  "startLine": 147
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "[Error information](1) can be exposed to an external user."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7c1f69188f18e239:1"
+          },
+          "properties": {
+            "github/alertNumber": 43,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/43"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Error information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 142,
+                  "startColumn": 25,
+                  "startLine": 142
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/error-message-exposure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 34
+          },
+          "ruleId": "java/error-message-exposure"
+        },
+        {
+          "correlationGuid": "7952e851-1c30-464b-9dec-b95dac8a4672",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 40,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 221,
+                  "startColumn": 24,
+                  "startLine": 221
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "[Error information](1) can be exposed to an external user.\n[Error information](2) can be exposed to an external user."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "517a7a49b664a801:1"
+          },
+          "properties": {
+            "github/alertNumber": 44,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/44"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Error information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 142,
+                  "startColumn": 25,
+                  "startLine": 142
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "Error information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 35,
+                  "endLine": 214,
+                  "startColumn": 21,
+                  "startLine": 214
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/error-message-exposure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 34
+          },
+          "ruleId": "java/error-message-exposure"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "value : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 447,
+                            "startColumn": 69,
+                            "startLine": 447
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "30f90aeb-80a9-4d07-9b19-4abf7e8f8bee",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 173,
+                  "startColumn": 31,
+                  "startLine": 173
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file.\nThis [potentially sensitive information](4) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b258de7695f5dec0:1"
+          },
+          "properties": {
+            "github/alertNumber": 47,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/47"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 432,
+                  "startColumn": 32,
+                  "startLine": 432
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "value : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 447,
+                            "startColumn": 69,
+                            "startLine": 447
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "30a706fe-267d-4dc1-b6cf-a5c026098825",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 206,
+                  "startColumn": 23,
+                  "startLine": 206
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file.\nThis [potentially sensitive information](4) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd2a1ec6a8b7b405:1"
+          },
+          "properties": {
+            "github/alertNumber": 48,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/48"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 432,
+                  "startColumn": 32,
+                  "startLine": 432
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "67df50b5-3068-4100-9239-4df136ea9322",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 377,
+                  "startColumn": 23,
+                  "startLine": 377
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cc5d9e321a21ccd1:1"
+          },
+          "properties": {
+            "github/alertNumber": 49,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/49"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 28,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 347,
+                            "startColumn": 17,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 348,
+                            "startColumn": 17,
+                            "startLine": 348
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77f6883b-94bd-46f5-a257-6558bfb0d70c",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 6,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 82,
+                  "endLine": 287,
+                  "startColumn": 21,
+                  "startLine": 287
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7530e208e45d24:1"
+          },
+          "properties": {
+            "github/alertNumber": 50,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/50"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 440,
+                            "startColumn": 33,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 440,
+                            "startColumn": 17,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [Return] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 427,
+                            "startColumn": 33,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 72,
+                            "startColumn": 47,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 77,
+                            "startColumn": 66,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 349,
+                            "startColumn": 21,
+                            "startLine": 349
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 350,
+                            "startColumn": 37,
+                            "startLine": 350
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 384,
+                            "startColumn": 59,
+                            "startLine": 384
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 387,
+                            "startColumn": 28,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rule : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 393,
+                            "startColumn": 39,
+                            "startLine": 393
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 417,
+                            "startColumn": 35,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 440,
+                            "startColumn": 33,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 440,
+                            "startColumn": 17,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [Return] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 427,
+                            "startColumn": 33,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 92,
+                            "startColumn": 43,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 95,
+                            "startColumn": 68,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "moreStringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 312,
+                            "startColumn": 22,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "moreStringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 325,
+                            "startColumn": 32,
+                            "startLine": 325
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 325,
+                            "startColumn": 13,
+                            "startLine": 325
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 328,
+                            "startColumn": 34,
+                            "startLine": 328
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 384,
+                            "startColumn": 59,
+                            "startLine": 384
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 387,
+                            "startColumn": 28,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rule : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 409,
+                            "startColumn": 43,
+                            "startLine": 409
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 417,
+                            "startColumn": 35,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 440,
+                            "startColumn": 33,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 440,
+                            "startColumn": 17,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [Return] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 427,
+                            "startColumn": 33,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 75,
+                            "startColumn": 81,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 77,
+                            "startColumn": 66,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 349,
+                            "startColumn": 21,
+                            "startLine": 349
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 350,
+                            "startColumn": 37,
+                            "startLine": 350
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 384,
+                            "startColumn": 59,
+                            "startLine": 384
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 387,
+                            "startColumn": 28,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rule : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 417,
+                            "startColumn": 48,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 417,
+                            "startColumn": 35,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "08675dab-9c70-416e-962f-7f7e3e3b67c9",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 32,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 417,
+                  "startColumn": 35,
+                  "startLine": 417
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "23f38d8a6fbde26d:1"
+          },
+          "properties": {
+            "github/alertNumber": 51,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/51"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 440,
+                  "startColumn": 33,
+                  "startLine": 440
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 968,
+                            "startColumn": 16,
+                            "startLine": 968
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 898,
+                            "startColumn": 16,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTransformedText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 1011,
+                            "startColumn": 52,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "da4d7ae6-6f80-407e-b108-7a3cca7bbfdd",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 22,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 120,
+                  "startColumn": 19,
+                  "startLine": 120
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "fb28e345672306f2:1"
+          },
+          "properties": {
+            "github/alertNumber": 52,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/52"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 28,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 347,
+                            "startColumn": 17,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 348,
+                            "startColumn": 17,
+                            "startLine": 348
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fe15a938-be5c-4951-b09a-d5659cb877ef",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 46,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 594,
+                  "startColumn": 31,
+                  "startLine": 594
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "822a9d43166c586a:1"
+          },
+          "properties": {
+            "github/alertNumber": 53,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/53"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "correlationGuid": "c3895d1d-1d4d-48b2-ad20-5ca4c174415e",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 47,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 38,
+                  "startColumn": 38,
+                  "startLine": 38
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cryptographic algorithm [SHA](1) may not be secure, consider using a different algorithm."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b56e53fdf7dd4c93:1"
+          },
+          "properties": {
+            "github/alertNumber": 54,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/54"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "SHA"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 38,
+                  "startColumn": 64,
+                  "startLine": 38
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/potentially-weak-cryptographic-algorithm",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 70
+          },
+          "ruleId": "java/potentially-weak-cryptographic-algorithm"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 119,
+                            "startColumn": 41,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "page"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 138,
+                            "startColumn": 73,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 119,
+                            "startColumn": 41,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "page"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 138,
+                            "startColumn": 73,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "45fb1afb-27af-4c4b-bbd9-edefc41bc8c5",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 48,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 83,
+                  "endLine": 138,
+                  "startColumn": 73,
+                  "startLine": 138
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This arithmetic expression depends on a [user-provided value](1), potentially causing an underflow.\nThis arithmetic expression depends on a [user-provided value](1), potentially causing an overflow."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "af0255107030c17b:1"
+          },
+          "properties": {
+            "github/alertNumber": 55,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/55"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 119,
+                  "startColumn": 41,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/tainted-arithmetic",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 88
+          },
+          "ruleId": "java/tainted-arithmetic"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 119,
+                            "startColumn": 41,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "page"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 196,
+                            "startColumn": 78,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c7fc61b6-af15-4bb3-95da-005dcbf2db38",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 48,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 86,
+                  "endLine": 196,
+                  "startColumn": 78,
+                  "startLine": 196
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This arithmetic expression depends on a [user-provided value](1), potentially causing an overflow."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9c3fce4c4e83e29b:1"
+          },
+          "properties": {
+            "github/alertNumber": 56,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/56"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 119,
+                  "startColumn": 41,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/tainted-arithmetic",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 88
+          },
+          "ruleId": "java/tainted-arithmetic"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c19e39ee-9f4a-48a0-a970-790e9504a3e2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 90,
+                  "startColumn": 19,
+                  "startLine": 90
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2e0591e88ae3e31f:1"
+          },
+          "properties": {
+            "github/alertNumber": 57,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/57"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 128,
+                            "startColumn": 28,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 129,
+                            "startColumn": 24,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 129,
+                            "startColumn": 9,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 128,
+                            "startColumn": 17,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 102,
+                            "startColumn": 9,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 86,
+                            "startColumn": 20,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getFeedURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 86,
+                            "startColumn": 20,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 86,
+                            "startColumn": 9,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 23,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 128,
+                            "startColumn": 28,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 129,
+                            "startColumn": 24,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 129,
+                            "startColumn": 9,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 128,
+                            "startColumn": 17,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 102,
+                            "startColumn": 9,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 112,
+                            "startColumn": 31,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getFeedURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 112,
+                            "startColumn": 31,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "siteUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 137,
+                            "startColumn": 28,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "siteUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 138,
+                            "startColumn": 24,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 137,
+                            "startColumn": 17,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub [post update] : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 112,
+                            "startColumn": 13,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 87,
+                            "startColumn": 20,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 133,
+                            "startColumn": 19,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "siteUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSiteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 87,
+                            "startColumn": 20,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 87,
+                            "startColumn": 9,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 23,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "848e6843-72bc-4dfc-9056-b3a48bf1dd34",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 126,
+                  "startColumn": 23,
+                  "startLine": 126
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "28e49ad3cae636c7:1"
+          },
+          "properties": {
+            "github/alertNumber": 58,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/58"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "208f3a77-2dd2-41fd-b0a1-3b80d74f555b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 148,
+                  "startColumn": 27,
+                  "startLine": 148
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ebe90d4273ef4125:1"
+          },
+          "properties": {
+            "github/alertNumber": 59,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/59"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 135,
+                            "startColumn": 33,
+                            "startLine": 135
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 165,
+                            "startColumn": 57,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 165,
+                            "startColumn": 57,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 137,
+                            "startColumn": 20,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 57,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b92aa000-9492-4e23-90e9-3f82f2d6b299",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 179,
+                  "startColumn": 23,
+                  "startLine": 179
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1ae2218079ed9057:1"
+          },
+          "properties": {
+            "github/alertNumber": 60,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/60"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 54,
+                  "startColumn": 20,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 372,
+                            "startColumn": 31,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 68,
+                            "startColumn": 17,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 372,
+                            "startColumn": 31,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 372,
+                            "startColumn": 31,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bbf6a34e-cb54-44ef-b29e-f39d74a6df0d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 372,
+                  "startColumn": 31,
+                  "startLine": 372
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f936562e7da7288c:1"
+          },
+          "properties": {
+            "github/alertNumber": 61,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/61"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 374,
+                            "startColumn": 30,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 68,
+                            "startColumn": 17,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 374,
+                            "startColumn": 30,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 374,
+                            "startColumn": 30,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8437ef63-91b5-438e-bdbd-b8d9a03a73b9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 374,
+                  "startColumn": 30,
+                  "startLine": 374
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d37007eb67dc4f46:1"
+          },
+          "properties": {
+            "github/alertNumber": 62,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/62"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 88,
+                            "startColumn": 25,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 386,
+                            "startColumn": 13,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 55,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 48,
+                            "startColumn": 20,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 55,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+                          },
+                          "region": {
+                            "endColumn": 102,
+                            "endLine": 88,
+                            "startColumn": 84,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 386,
+                            "startColumn": 13,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 52,
+                            "startColumn": 20,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 206,
+                            "startColumn": 44,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 386,
+                            "startColumn": 13,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 87,
+                            "startColumn": 62,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 385,
+                            "startColumn": 59,
+                            "startLine": 385
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 390,
+                            "startColumn": 64,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 390,
+                            "startColumn": 64,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "0c61579e-5ba2-450f-9afa-6dd66ae0c5b0",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 390,
+                  "startColumn": 19,
+                  "startLine": 390
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3).\nThis log entry depends on a [user-provided value](4)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "80ca2e76d1f7b33b:1"
+          },
+          "properties": {
+            "github/alertNumber": 63,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/63"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 65,
+                  "startColumn": 20,
+                  "startLine": 65
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 48,
+                  "startColumn": 20,
+                  "startLine": 48
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 52,
+                  "startColumn": 20,
+                  "startLine": 52
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 53,
+                            "startColumn": 19,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 54,
+                            "startColumn": 16,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 89,
+                            "startColumn": 31,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 167,
+                            "startColumn": 16,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 92,
+                            "startColumn": 43,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c6e1ae5b-1290-4093-8d4f-97957133a626",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 173,
+                  "startColumn": 31,
+                  "startLine": 173
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3).\nThis log entry depends on a [user-provided value](4).\nThis log entry depends on a [user-provided value](5).\nThis log entry depends on a [user-provided value](6)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b258de7695f5dec0:1"
+          },
+          "properties": {
+            "github/alertNumber": 64,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/64"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 418,
+                  "startColumn": 29,
+                  "startLine": 418
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 467,
+                  "startColumn": 33,
+                  "startLine": 467
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 53,
+                            "startColumn": 19,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 54,
+                            "startColumn": 16,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 89,
+                            "startColumn": 31,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 167,
+                            "startColumn": 16,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 92,
+                            "startColumn": 43,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c63d13a8-1b41-4bda-92dd-ac2570302903",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 206,
+                  "startColumn": 23,
+                  "startLine": 206
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3).\nThis log entry depends on a [user-provided value](4).\nThis log entry depends on a [user-provided value](5).\nThis log entry depends on a [user-provided value](6)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd2a1ec6a8b7b405:1"
+          },
+          "properties": {
+            "github/alertNumber": 65,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/65"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 418,
+                  "startColumn": 29,
+                  "startLine": 418
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 467,
+                  "startColumn": 33,
+                  "startLine": 467
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : UserEdit [user, userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : UserEdit [user, userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f4f9401b-7060-44c3-b861-82bcbaf74883",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 377,
+                  "startColumn": 23,
+                  "startLine": 377
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cc5d9e321a21ccd1:1"
+          },
+          "properties": {
+            "github/alertNumber": 66,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/66"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 56,
+                            "startColumn": 24,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 250,
+                            "startColumn": 16,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTarget(...) : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 167,
+                            "startColumn": 92,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 101,
+                            "startColumn": 39,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 103,
+                            "startColumn": 32,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 61,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/PingTarget.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 123,
+                            "startColumn": 19,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 61,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/PingTarget.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 124,
+                            "startColumn": 16,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 103,
+                            "startColumn": 32,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 126,
+                            "endLine": 167,
+                            "startColumn": 109,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 101,
+                            "startColumn": 62,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 545,
+                            "startColumn": 19,
+                            "startLine": 545
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 546,
+                            "startColumn": 78,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 69,
+                            "startColumn": 32,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 69,
+                            "startColumn": 32,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 69,
+                            "startColumn": 9,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 546,
+                            "startColumn": 16,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 126,
+                            "endLine": 167,
+                            "startColumn": 109,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 101,
+                            "startColumn": 62,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 545,
+                            "startColumn": 19,
+                            "startLine": 545
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 546,
+                            "startColumn": 78,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 49,
+                            "startColumn": 32,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 63,
+                            "startColumn": 48,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 63,
+                            "startColumn": 48,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 63,
+                            "startColumn": 9,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 546,
+                            "startColumn": 16,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 546,
+                            "startColumn": 16,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e53d3a67-27d6-48c7-bc20-9c7330905b67",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 59,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                },
+                "region": {
+                  "endColumn": 208,
+                  "endLine": 114,
+                  "startColumn": 26,
+                  "startLine": 114
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ffb096313949deb:1"
+          },
+          "properties": {
+            "github/alertNumber": 67,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/67"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 56,
+                  "startColumn": 24,
+                  "startLine": 56
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "14495d09-e1de-4f32-a619-d9ebe6f40728",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 30,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 102,
+                  "startColumn": 27,
+                  "startLine": 102
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "936fae6541bad1ed:1"
+          },
+          "properties": {
+            "github/alertNumber": 68,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/68"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 78,
+                            "startColumn": 30,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 83,
+                            "startColumn": 17,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 59,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 228,
+                            "startColumn": 52,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "73125a98-05bc-416a-ba08-33ede65f4eb7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 62,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 167,
+                  "startColumn": 14,
+                  "startLine": 167
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cc169df61ce32679:1"
+          },
+          "properties": {
+            "github/alertNumber": 69,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/69"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 139,
+                            "startColumn": 46,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 195,
+                            "startColumn": 26,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 98,
+                            "endLine": 206,
+                            "startColumn": 22,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "96af9c4b-b68d-46c8-86f9-e0fb73b388c1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 62,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 98,
+                  "endLine": 206,
+                  "startColumn": 22,
+                  "startLine": 206
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cee00903def403b7:1"
+          },
+          "properties": {
+            "github/alertNumber": 70,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/70"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 746,
+                            "startColumn": 19,
+                            "startLine": 746
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 238,
+                            "startColumn": 19,
+                            "startLine": 238
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 239,
+                            "startColumn": 16,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWebsite(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 83,
+                            "startColumn": 37,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 45,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 746,
+                            "startColumn": 19,
+                            "startLine": 746
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 238,
+                            "startColumn": 19,
+                            "startLine": 238
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 239,
+                            "startColumn": 16,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWebsite(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 83,
+                            "startColumn": 37,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 45,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 126,
+                            "endLine": 167,
+                            "startColumn": 109,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 101,
+                            "startColumn": 62,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 545,
+                            "startColumn": 19,
+                            "startLine": 545
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 546,
+                            "startColumn": 78,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 45,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 139,
+                            "startColumn": 64,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "43fcab1c-552a-4414-aff3-9c832e95effd",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 66,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 176,
+                  "startColumn": 19,
+                  "startLine": 176
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a08f31576301ddae:1"
+          },
+          "properties": {
+            "github/alertNumber": 71,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/71"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e9585644-3d1b-44e0-9b16-11d1f64baf1b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 37,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "69aa71c58e6a7b41:1"
+          },
+          "properties": {
+            "github/alertNumber": 72,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/72"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 84,
+                            "startColumn": 19,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "db8579cf-b1de-4969-a937-b98addb89e89",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 37,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 84,
+                  "startColumn": 19,
+                  "startLine": 84
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9a56fe15410415b6:1"
+          },
+          "properties": {
+            "github/alertNumber": 73,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/73"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 86,
+                            "startColumn": 34,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 91,
+                            "startColumn": 38,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "75731947-7661-489b-9baa-f2ef53b3d534",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 100,
+                  "startColumn": 23,
+                  "startLine": 100
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8be1b6dd5ca2f2f9:1"
+          },
+          "properties": {
+            "github/alertNumber": 74,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/74"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 86,
+                  "startColumn": 34,
+                  "startLine": 86
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 91,
+                  "startColumn": 38,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 25,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 305,
+                            "startColumn": 16,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 127,
+                            "startColumn": 54,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 78,
+                            "startColumn": 19,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 79,
+                            "startColumn": 16,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 127,
+                            "startColumn": 54,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7d85c54a-89b8-438e-b30e-6dd5e00294a1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 127,
+                  "startColumn": 31,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d57797d1ba4a6e1:1"
+          },
+          "properties": {
+            "github/alertNumber": 75,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/75"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 46,
+                  "startColumn": 25,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 184,
+                            "startColumn": 62,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 184,
+                            "startColumn": 31,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a0d5755d-2e85-46de-b53f-9b2f67ca2d61",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 73,
+                  "endLine": 184,
+                  "startColumn": 31,
+                  "startLine": 184
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f08cf860a892c8e5:1"
+          },
+          "properties": {
+            "github/alertNumber": 76,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/76"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 40,
+                            "startColumn": 25,
+                            "startLine": 40
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 82,
+                            "startColumn": 62,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 70,
+                            "startColumn": 19,
+                            "startLine": 70
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 71,
+                            "startColumn": 16,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 82,
+                            "startColumn": 62,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 82,
+                            "startColumn": 27,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3100f062-5f2d-4f4a-9bd1-d22f5f8ad9f4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 69,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 82,
+                  "startColumn": 27,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcadb2baab838791:1"
+          },
+          "properties": {
+            "github/alertNumber": 77,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/77"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 40,
+                  "startColumn": 25,
+                  "startLine": 40
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 195,
+                            "startColumn": 67,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 195,
+                            "startColumn": 31,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e8e85eb8-4324-4cef-aa76-76b4b8cd1b54",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 195,
+                  "startColumn": 31,
+                  "startLine": 195
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a0d39d71a074abc0:1"
+          },
+          "properties": {
+            "github/alertNumber": 78,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/78"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 78,
+                            "startColumn": 30,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 83,
+                            "startColumn": 17,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 59,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 228,
+                            "startColumn": 52,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "97c25bc5-539b-48ee-b88b-e374911a2a8b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 57,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 162,
+                  "startColumn": 23,
+                  "startLine": 162
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2438d14ed044ce66:1"
+          },
+          "properties": {
+            "github/alertNumber": 79,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/79"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 141,
+                            "startColumn": 13,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 141,
+                            "startColumn": 40,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 141,
+                            "startColumn": 92,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "08714ac8-491b-4cb2-9843-43993d815e70",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 57,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 629,
+                  "startColumn": 23,
+                  "startLine": 629
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "17b23e947dd64744:1"
+          },
+          "properties": {
+            "github/alertNumber": 80,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/80"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 46,
+                  "startColumn": 26,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 89,
+                            "startColumn": 31,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 27,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 27,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "92b5ff10-6759-45f4-88a6-89583bea790b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 14,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 250,
+                  "startColumn": 27,
+                  "startLine": 250
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8d91355609a0e920:1"
+          },
+          "properties": {
+            "github/alertNumber": 81,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/81"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 30,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 19,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2b9cce4b-6878-491a-a3fb-b7a2370e7abd",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 72,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 19,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c2ece2b3e2af8d8b:1"
+          },
+          "properties": {
+            "github/alertNumber": 82,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/82"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 30,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 71,
+                            "startColumn": 30,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 71,
+                            "startColumn": 19,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ae07bb32-6649-4791-87c9-bf8749056b2c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 72,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 71,
+                  "startColumn": 19,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a88667d606a890c3:1"
+          },
+          "properties": {
+            "github/alertNumber": 83,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/83"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 71,
+                  "startColumn": 30,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 30,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 18,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3c7daa23-8c7a-4595-8093-e1d9d05441a9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 73,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 18,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "aa6793773d3fa67:1"
+          },
+          "properties": {
+            "github/alertNumber": 84,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/84"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 30,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 64,
+                            "startColumn": 29,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 64,
+                            "startColumn": 18,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9e899334-51ef-42ba-a1d8-cbe8c34ebc80",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 73,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 64,
+                  "startColumn": 18,
+                  "startLine": 64
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "df1090d8a8954f9e:1"
+          },
+          "properties": {
+            "github/alertNumber": 85,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/85"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 64,
+                  "startColumn": 29,
+                  "startLine": 64
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 30,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 19,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "11fc36b4-00c1-4656-b06a-8e0307e8cab1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 74,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 19,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "fafc616351ef5ff6:1"
+          },
+          "properties": {
+            "github/alertNumber": 86,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/86"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 30,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 30,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 19,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "642e0a3a-3f84-45cb-b2eb-c09562d7d7c9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 74,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 19,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "150a14bab8630004:1"
+          },
+          "properties": {
+            "github/alertNumber": 87,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/87"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 30,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 31,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 31,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 31,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2f9c59cb-6336-463c-9ecd-11ed5a598ee2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 8,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 74,
+                  "startColumn": 31,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b9f71664ba42b479:1"
+          },
+          "properties": {
+            "github/alertNumber": 88,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/88"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 75,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 58,
+                            "startColumn": 45,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 75,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3fb6041a-40a1-437b-95c4-22430d0e2bfd",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 75,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 58,
+                  "startColumn": 22,
+                  "startLine": 58
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bcf5dbe0d1c8c530:1"
+          },
+          "properties": {
+            "github/alertNumber": 89,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/89"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 58,
+                  "startColumn": 45,
+                  "startLine": 58
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 114,
+                            "startColumn": 27,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4cab36b2-a082-4233-8012-e48e03428846",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 8,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 114,
+                  "startColumn": 27,
+                  "startLine": 114
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f28369d07d8f1cd1:1"
+          },
+          "properties": {
+            "github/alertNumber": 90,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/90"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 30,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 19,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "109bc638-a8c3-4c72-b983-cd64fda84651",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 76,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 19,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7a453674e9567ce9:1"
+          },
+          "properties": {
+            "github/alertNumber": 91,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/91"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 30,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 68,
+                            "startColumn": 30,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 68,
+                            "startColumn": 19,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "57a140ba-6470-4f7f-b92b-29f45a769e62",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 76,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 68,
+                  "startColumn": 19,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "150a14bab8630004:1"
+          },
+          "properties": {
+            "github/alertNumber": 92,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/92"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 68,
+                  "startColumn": 30,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getServletPath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 69,
+                            "startColumn": 84,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 69,
+                            "startColumn": 35,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bdc6a6dd-5d84-4d67-a26c-39bd1d5de532",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 77,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 69,
+                  "startColumn": 35,
+                  "startLine": 69
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1cc2607248f48923:1"
+          },
+          "properties": {
+            "github/alertNumber": 93,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/93"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 69,
+                  "startColumn": 84,
+                  "startLine": 69
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b7b3904c-fb61-42b4-a79c-e1c0a56bf231",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 77,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 77,
+                  "startColumn": 31,
+                  "startLine": 77
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "72f3ef5cffd9b1e4:1"
+          },
+          "properties": {
+            "github/alertNumber": 94,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/94"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 34,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 101,
+                            "startColumn": 19,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "952b28c7-32c1-4911-a716-772da40c09ad",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 61,
+                  "endLine": 101,
+                  "startColumn": 19,
+                  "startLine": 101
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a6e9d1493c7493e0:1"
+          },
+          "properties": {
+            "github/alertNumber": 95,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/95"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 101,
+                  "startColumn": 34,
+                  "startLine": 101
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 130,
+                            "startColumn": 19,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 130,
+                            "startColumn": 19,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 130,
+                            "startColumn": 19,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "08fe3d0b-6346-424d-96a9-583351e141f1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 130,
+                  "startColumn": 19,
+                  "startLine": 130
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcf383c1eb36553a:1"
+          },
+          "properties": {
+            "github/alertNumber": 96,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/96"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 134,
+                            "startColumn": 23,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 134,
+                            "startColumn": 23,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 134,
+                            "startColumn": 23,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f3c2bb30-1588-41d3-96c1-4e61575cd17c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 134,
+                  "startColumn": 23,
+                  "startLine": 134
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f989376cdbd9541a:1"
+          },
+          "properties": {
+            "github/alertNumber": 97,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/97"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "cd05540c-55c5-4342-9912-b501e8825a68",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 148,
+                  "startColumn": 27,
+                  "startLine": 148
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "663b5b6cb241aee6:1"
+          },
+          "properties": {
+            "github/alertNumber": 98,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/98"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getServletPath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 153,
+                            "startColumn": 33,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 153,
+                            "startColumn": 19,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "701ee3ec-3bca-4fa4-b104-8d6eb84189e7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 153,
+                  "startColumn": 19,
+                  "startLine": 153
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "49dbc25bce4e3cad:1"
+          },
+          "properties": {
+            "github/alertNumber": 99,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/99"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 153,
+                  "startColumn": 33,
+                  "startLine": 153
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 271,
+                            "startColumn": 39,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 271,
+                            "startColumn": 21,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogLocale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 228,
+                            "startColumn": 72,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 253,
+                            "startColumn": 55,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 274,
+                            "startColumn": 43,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 274,
+                            "startColumn": 25,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 288,
+                            "startColumn": 39,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 288,
+                            "startColumn": 21,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 312,
+                            "startColumn": 35,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 312,
+                            "startColumn": 17,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "dcf3ec90-e7bc-48d3-90de-ce0df6eee7f6",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 237,
+                  "startColumn": 19,
+                  "startLine": 237
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a0ecfe487782fe33:1"
+          },
+          "properties": {
+            "github/alertNumber": 100,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/100"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogLocale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 228,
+                            "startColumn": 72,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 253,
+                            "startColumn": 55,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7f4c5b43-84ff-4c30-800e-4356f5e916ff",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 61,
+                  "endLine": 257,
+                  "startColumn": 23,
+                  "startLine": 257
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "90bd2f63db8ff9c2:1"
+          },
+          "properties": {
+            "github/alertNumber": 101,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/101"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 271,
+                            "startColumn": 39,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 271,
+                            "startColumn": 21,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogLocale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 228,
+                            "startColumn": 72,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 253,
+                            "startColumn": 55,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 274,
+                            "startColumn": 43,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 274,
+                            "startColumn": 25,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 288,
+                            "startColumn": 39,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 288,
+                            "startColumn": 21,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 312,
+                            "startColumn": 35,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 312,
+                            "startColumn": 17,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bf03573d-011f-492a-b4fe-c0ac2ff1b56a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 405,
+                  "startColumn": 23,
+                  "startLine": 405
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2848f01c47171aca:1"
+          },
+          "properties": {
+            "github/alertNumber": 102,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/102"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 64,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "potentialHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 416,
+                            "startColumn": 30,
+                            "startLine": 416
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 418,
+                            "startColumn": 19,
+                            "startLine": 418
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 64,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "potentialHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 416,
+                            "startColumn": 30,
+                            "startLine": 416
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 418,
+                            "startColumn": 19,
+                            "startLine": 418
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 64,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "potentialHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 416,
+                            "startColumn": 30,
+                            "startLine": 416
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 418,
+                            "startColumn": 19,
+                            "startLine": 418
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ae7d76fe-8268-44d0-95fc-92e5c9d0923b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 418,
+                  "startColumn": 19,
+                  "startLine": 418
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "76526c443f7e6f0a:1"
+          },
+          "properties": {
+            "github/alertNumber": 103,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/103"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 134,
+                            "startColumn": 14,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "59bdec7f-0b50-4ec4-868e-4905dedc98ab",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 16,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 134,
+                  "startColumn": 14,
+                  "startLine": 134
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c92d5cd2dbfa987a:1"
+          },
+          "properties": {
+            "github/alertNumber": 104,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/104"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 113,
+                  "startColumn": 21,
+                  "startLine": 113
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 24,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 95,
+                            "startColumn": 13,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 58,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 19,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 20,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 94,
+                            "startColumn": 9,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 58,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 19,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 20,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 94,
+                            "startColumn": 9,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 58,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 19,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fcb33c28-6239-477d-b80e-d5a35f9ebe73",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 78,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 225,
+                  "startColumn": 19,
+                  "startLine": 225
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d839a74372bf29d7:1"
+          },
+          "properties": {
+            "github/alertNumber": 105,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/105"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 67,
+                            "startColumn": 33,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 67,
+                            "startColumn": 13,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 69,
+                            "startColumn": 17,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 76,
+                            "startColumn": 13,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 79,
+                            "startColumn": 13,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4f340c9c-f7c6-4646-aac3-1fa6d942d293",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 79,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                },
+                "region": {
+                  "endColumn": 22,
+                  "endLine": 93,
+                  "startColumn": 19,
+                  "startLine": 92
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "69fbf80b90de8e58:1"
+          },
+          "properties": {
+            "github/alertNumber": 106,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/106"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 67,
+                            "startColumn": 33,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 67,
+                            "startColumn": 13,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 69,
+                            "startColumn": 17,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 76,
+                            "startColumn": 13,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 79,
+                            "startColumn": 13,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "23510bac-92b7-4446-87e7-3101ce920a1d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 82,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                },
+                "region": {
+                  "endColumn": 22,
+                  "endLine": 99,
+                  "startColumn": 19,
+                  "startLine": 98
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "69fbf80b90de8e58:1"
+          },
+          "properties": {
+            "github/alertNumber": 107,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/107"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 588,
+                            "startColumn": 48,
+                            "startLine": 588
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 588,
+                            "startColumn": 19,
+                            "startLine": 588
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b54c0ab2-8082-40e0-9600-2faa8d2d6088",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 83,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 588,
+                  "startColumn": 19,
+                  "startLine": 588
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ffdd48e56eefbc73:1"
+          },
+          "properties": {
+            "github/alertNumber": 108,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/108"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 588,
+                  "startColumn": 48,
+                  "startLine": 588
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHeader(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 621,
+                            "startColumn": 27,
+                            "startLine": 621
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 623,
+                            "startColumn": 19,
+                            "startLine": 623
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1a7f6fce-598f-4f8e-9c9c-2ea6e0037de8",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 83,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 623,
+                  "startColumn": 19,
+                  "startLine": 623
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "abbad978543707bb:1"
+          },
+          "properties": {
+            "github/alertNumber": 109,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/109"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 621,
+                  "startColumn": 27,
+                  "startLine": 621
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHeader(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 621,
+                            "startColumn": 27,
+                            "startLine": 621
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 672,
+                            "startColumn": 27,
+                            "startLine": 672
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "316259e7-40dd-4b7c-b289-2f849b100907",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 83,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 672,
+                  "startColumn": 27,
+                  "startLine": 672
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "77468e22342cb86a:1"
+          },
+          "properties": {
+            "github/alertNumber": 110,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/110"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 621,
+                  "startColumn": 27,
+                  "startLine": 621
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 84,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 107,
+                            "startColumn": 33,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 84,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 107,
+                            "startColumn": 15,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7220b359-936b-421e-b74e-88f84edd5928",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 84,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 107,
+                  "startColumn": 15,
+                  "startLine": 107
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c96d57cbd8b44ee4:1"
+          },
+          "properties": {
+            "github/alertNumber": 111,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/111"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 107,
+                  "startColumn": 33,
+                  "startLine": 107
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 51,
+                            "startColumn": 34,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 51,
+                            "startColumn": 19,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d740ed34-6ab3-49f4-bdb2-bf42c85016c0",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 85,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 51,
+                  "startColumn": 19,
+                  "startLine": 51
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "da488e1b9db7c2b3:1"
+          },
+          "properties": {
+            "github/alertNumber": 112,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/112"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 51,
+                  "startColumn": 34,
+                  "startLine": 51
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 118,
+                            "startColumn": 46,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 118,
+                            "startColumn": 25,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 138,
+                            "startColumn": 23,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 118,
+                            "startColumn": 46,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 118,
+                            "startColumn": 25,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [name] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 118,
+                            "startColumn": 13,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [name] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 138,
+                            "startColumn": 33,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 138,
+                            "startColumn": 33,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 138,
+                            "startColumn": 23,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3fd909cf-eb78-4d46-bc12-6cbf3ace15ed",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 42,
+                  "endLine": 138,
+                  "startColumn": 23,
+                  "startLine": 138
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c9ea63b36c0346f0:1"
+          },
+          "properties": {
+            "github/alertNumber": 113,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/113"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 118,
+                  "startColumn": 46,
+                  "startLine": 118
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 122,
+                            "startColumn": 47,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 122,
+                            "startColumn": 26,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 122,
+                            "startColumn": 47,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 122,
+                            "startColumn": 26,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [email] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 122,
+                            "startColumn": 13,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [email] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 139,
+                            "startColumn": 34,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.email : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 139,
+                            "startColumn": 34,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "aaef273e-ae26-4334-a63b-2ddb4e45e068",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 139,
+                  "startColumn": 23,
+                  "startLine": 139
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b32d6c74b4d5e46d:1"
+          },
+          "properties": {
+            "github/alertNumber": 114,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/114"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 122,
+                  "startColumn": 47,
+                  "startLine": 122
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 126,
+                            "startColumn": 24,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 126,
+                            "startColumn": 24,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 126,
+                            "startColumn": 13,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 140,
+                            "startColumn": 32,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 32,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ca8a7aee-2167-4dc2-b009-1532096b2db2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 140,
+                  "startColumn": 23,
+                  "startLine": 140
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c9ad117fed3bee6:1"
+          },
+          "properties": {
+            "github/alertNumber": 115,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/115"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 126,
+                  "startColumn": 45,
+                  "startLine": 126
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 130,
+                            "startColumn": 28,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 130,
+                            "startColumn": 28,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [content] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 130,
+                            "startColumn": 13,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [content] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 141,
+                            "startColumn": 36,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 36,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bbc8002f-b391-4e1e-99d1-8ccda586071d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 141,
+                  "startColumn": 23,
+                  "startLine": 141
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7de12f9816339ac:1"
+          },
+          "properties": {
+            "github/alertNumber": 116,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/116"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 130,
+                  "startColumn": 28,
+                  "startLine": 130
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 9,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 89,
+                            "startColumn": 59,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 89,
+                            "startColumn": 41,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 9,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 89,
+                            "startColumn": 59,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 89,
+                            "startColumn": 41,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogAnchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 9,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 89,
+                            "startColumn": 59,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 89,
+                            "startColumn": 41,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2765af25-d85e-4b63-9529-d9a68afbb216",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 143,
+                  "startColumn": 23,
+                  "startLine": 143
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7a6da6aa16493d39:1"
+          },
+          "properties": {
+            "github/alertNumber": 117,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/117"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4c58e8fc-624b-4c59-b569-780dd675f128",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 53,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 58,
+                  "startColumn": 19,
+                  "startLine": 58
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8daa4482c165b680:1"
+          },
+          "properties": {
+            "github/alertNumber": 118,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/118"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1045415d-8a25-4f6b-bc93-2b59dfdf590d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 82,
+                  "startColumn": 19,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a68f9e305063ca01:1"
+          },
+          "properties": {
+            "github/alertNumber": 119,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/119"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 23,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 23,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 81,
+                            "startColumn": 39,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 39,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 23,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "6bdacef9-1572-43ac-bf3c-b2464ca8c483",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 53,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 81,
+                  "startColumn": 23,
+                  "startLine": 81
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ca94cde0e2f1eb58:1"
+          },
+          "properties": {
+            "github/alertNumber": 120,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/120"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 60,
+                            "startColumn": 30,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 74,
+                            "startColumn": 23,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 60,
+                            "startColumn": 30,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 60,
+                            "startColumn": 13,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPreviewRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 74,
+                            "startColumn": 34,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 74,
+                            "startColumn": 34,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 74,
+                            "startColumn": 23,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "11e42fd2-6cac-4edb-aa1b-382ef3cefae3",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 88,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 74,
+                  "startColumn": 23,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "719ed5c4857b5406:1"
+          },
+          "properties": {
+            "github/alertNumber": 121,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/121"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 60,
+                  "startColumn": 30,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 61,
+                            "startColumn": 23,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 34,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 61,
+                            "startColumn": 34,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 61,
+                            "startColumn": 23,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9eb0efc8-22c4-4241-a518-314f3301d87e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 81,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 61,
+                  "startColumn": 23,
+                  "startLine": 61
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "be79ac3e1db3c034:1"
+          },
+          "properties": {
+            "github/alertNumber": 122,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/122"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 57,
+                  "startColumn": 30,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 85,
+                            "startColumn": 18,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 27,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 85,
+                            "startColumn": 18,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 43,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 43,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 27,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 85,
+                            "startColumn": 18,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 53,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 53,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 27,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a918c1b7-335d-476a-9ace-d4b152ad205b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 81,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 94,
+                  "startColumn": 27,
+                  "startLine": 94
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4d9670df4c218988:1"
+          },
+          "properties": {
+            "github/alertNumber": 123,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/123"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 57,
+                  "startColumn": 30,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 23,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 104,
+                            "startColumn": 29,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogFeedRequest [type] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 104,
+                            "startColumn": 17,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [type] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 105,
+                            "startColumn": 17,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [type] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 161,
+                            "startColumn": 33,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.type : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 33,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 23,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 23,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1e2ec4e4-7fdb-443d-9370-7ad94609419b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 42,
+                  "endLine": 161,
+                  "startColumn": 23,
+                  "startLine": 161
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "735b08c74765e541:1"
+          },
+          "properties": {
+            "github/alertNumber": 124,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/124"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 105,
+                            "startColumn": 31,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogFeedRequest [format] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 105,
+                            "startColumn": 17,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [format] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 162,
+                            "startColumn": 35,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.format : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 35,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "92b0994b-0dbd-421c-bbfc-88a6e478fdcb",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 162,
+                  "startColumn": 23,
+                  "startLine": 162
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd952aa0a04fc042:1"
+          },
+          "properties": {
+            "github/alertNumber": 125,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/125"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 128,
+                            "startColumn": 21,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 128,
+                            "startColumn": 21,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogFeedRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 127,
+                            "startColumn": 13,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 156,
+                            "startColumn": 57,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogCategoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 156,
+                            "startColumn": 57,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "250e9486-6d6e-41af-b6a3-7a7ba07eba4c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 163,
+                  "startColumn": 23,
+                  "startLine": 163
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcf7c87f4920bbcd:1"
+          },
+          "properties": {
+            "github/alertNumber": 126,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/126"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 128,
+                  "startColumn": 41,
+                  "startLine": 128
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 75,
+                            "startColumn": 19,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "207de851-fd2e-4dcf-9ab4-86c80dba48eb",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 75,
+                  "startColumn": 19,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ef5c91917550823c:1"
+          },
+          "properties": {
+            "github/alertNumber": 127,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/127"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 122,
+                            "startColumn": 23,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 122,
+                            "startColumn": 35,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 122,
+                            "startColumn": 35,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 122,
+                            "startColumn": 23,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "28069c64-aa79-4a8f-a0fd-e3b9fca0e9cc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 122,
+                  "startColumn": 23,
+                  "startLine": 122
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7aa4ecdf34276c5e:1"
+          },
+          "properties": {
+            "github/alertNumber": 128,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/128"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 123,
+                            "startColumn": 23,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 109,
+                            "startColumn": 31,
+                            "startLine": 109
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [locale] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 109,
+                            "startColumn": 17,
+                            "startLine": 109
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogRequest [locale] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 35,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 123,
+                            "startColumn": 35,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 123,
+                            "startColumn": 23,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "72a878c6-1c3d-4a4a-87cf-54e158f52364",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 123,
+                  "startColumn": 23,
+                  "startLine": 123
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8e3b3bdc9cf3eff7:1"
+          },
+          "properties": {
+            "github/alertNumber": 129,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/129"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 124,
+                            "startColumn": 37,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 37,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3eca26c5-d83d-4455-a3e7-3df45ca665d8",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 124,
+                  "startColumn": 23,
+                  "startLine": 124
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d3b1870c4b84e4a8:1"
+          },
+          "properties": {
+            "github/alertNumber": 130,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/130"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 57,
+                            "startColumn": 19,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 57,
+                            "startColumn": 19,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 57,
+                            "startColumn": 19,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ddf5d0b2-4cac-425a-a74b-01e72519a9f4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 80,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 57,
+                  "startColumn": 19,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d68fc770b2677b0f:1"
+          },
+          "properties": {
+            "github/alertNumber": 131,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/131"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogRequest(...) : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 89,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 81,
+                            "startColumn": 29,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogRequest : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 89,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 84,
+                            "startColumn": 22,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 78,
+                            "startColumn": 22,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 189,
+                            "startColumn": 44,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 189,
+                            "startColumn": 44,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 82,
+                            "startColumn": 22,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 54,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 54,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 79,
+                            "startColumn": 22,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "00793c8a-6293-40a7-b975-7399a0de3369",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 191,
+                  "startColumn": 27,
+                  "startLine": 191
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "676191d9ba085b94:1"
+          },
+          "properties": {
+            "github/alertNumber": 132,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/132"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 23,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 79,
+                            "startColumn": 13,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 23,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 23,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "65324bba-a2f1-48c3-8913-c3706cca9e97",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 80,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 87,
+                  "startColumn": 23,
+                  "startLine": 87
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1c1e8cd55321ee47:1"
+          },
+          "properties": {
+            "github/alertNumber": 133,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/133"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 29,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 29,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [blogName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 115,
+                            "startColumn": 13,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [blogName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 132,
+                            "startColumn": 12,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.blogName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 132,
+                            "startColumn": 12,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "50a2f4a3-41b9-417e-b832-4f57bc62068a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 139,
+                  "startColumn": 23,
+                  "startLine": 139
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9d9fb33390d95b4e:1"
+          },
+          "properties": {
+            "github/alertNumber": 134,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/134"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 115,
+                  "startColumn": 29,
+                  "startLine": 115
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 24,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 24,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 119,
+                            "startColumn": 13,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 132,
+                            "startColumn": 37,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 132,
+                            "startColumn": 37,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d2339f82-1805-4111-995c-bd482965efd1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 140,
+                  "startColumn": 23,
+                  "startLine": 140
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "25c5f45c123429f1:1"
+          },
+          "properties": {
+            "github/alertNumber": 135,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/135"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 119,
+                  "startColumn": 24,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 123,
+                            "startColumn": 28,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 123,
+                            "startColumn": 28,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [excerpt] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 123,
+                            "startColumn": 13,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [excerpt] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 133,
+                            "startColumn": 17,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 133,
+                            "startColumn": 17,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f3cbbc13-b309-4439-b879-cc4bd2d8b1ce",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 141,
+                  "startColumn": 23,
+                  "startLine": 141
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a69ac23e7a1ce2cb:1"
+          },
+          "properties": {
+            "github/alertNumber": 136,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/136"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 123,
+                  "startColumn": 28,
+                  "startLine": 123
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 127,
+                            "startColumn": 26,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 142,
+                            "startColumn": 23,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 127,
+                            "startColumn": 26,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [title] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 127,
+                            "startColumn": 13,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [title] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 133,
+                            "startColumn": 41,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 133,
+                            "startColumn": 41,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 142,
+                            "startColumn": 23,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a5178904-26a6-4cf9-8b40-a4ca48653dbe",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 142,
+                  "startColumn": 23,
+                  "startLine": 142
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f16f6fccea817b10:1"
+          },
+          "properties": {
+            "github/alertNumber": 137,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/137"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 127,
+                  "startColumn": 26,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 60,
+                            "startColumn": 9,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 87,
+                            "startColumn": 59,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 60,
+                            "startColumn": 9,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 87,
+                            "startColumn": 59,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 87,
+                            "startColumn": 21,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogAnchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 60,
+                            "startColumn": 9,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 87,
+                            "startColumn": 59,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "dbe98741-71ce-4050-bd3f-504e75171263",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 143,
+                  "startColumn": 23,
+                  "startLine": 143
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "297efb32b64e607c:1"
+          },
+          "properties": {
+            "github/alertNumber": 138,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/138"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 125,
+                            "startColumn": 63,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 99,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 108,
+                            "startColumn": 23,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "db7ae0d1-a953-4cf5-8c76-649aed45f696",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 91,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 108,
+                  "startColumn": 23,
+                  "startLine": 108
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1c9bb0ef82acf10b:1"
+          },
+          "properties": {
+            "github/alertNumber": 139,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/139"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 125,
+                            "startColumn": 63,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 99,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 110,
+                            "startColumn": 23,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f0a7864b-404e-496e-bc23-9771c19fdd0f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 91,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 110,
+                  "startColumn": 23,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1b0efe43d94b8258:1"
+          },
+          "properties": {
+            "github/alertNumber": 140,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/140"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 243,
+                            "startColumn": 30,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 117,
+                            "startColumn": 21,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "814ac33f-1d37-4981-8676-0260cc31bb40",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 91,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 124,
+                  "startColumn": 19,
+                  "startLine": 124
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b7a8f23a0e665356:1"
+          },
+          "properties": {
+            "github/alertNumber": 141,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/141"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 82,
+                            "startColumn": 27,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "86fd0007-1421-4013-ad24-32a0d0b551ba",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 37,
+                  "endLine": 82,
+                  "startColumn": 27,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8988d6baea14e575:1"
+          },
+          "properties": {
+            "github/alertNumber": 142,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/142"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 27,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d5d23a6c-6d07-4d8e-95e6-26c69856c816",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 84,
+                  "startColumn": 27,
+                  "startLine": 84
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9a2bb28767b27d77:1"
+          },
+          "properties": {
+            "github/alertNumber": 143,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/143"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 88,
+                            "startColumn": 23,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b12e8ce9-038c-435e-bb59-881a8676ab8a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 88,
+                  "startColumn": 23,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e5eafc7dcc95164e:1"
+          },
+          "properties": {
+            "github/alertNumber": 144,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/144"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 102,
+                            "startColumn": 24,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 104,
+                            "startColumn": 19,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4e3a8217-b906-4801-921c-838cb3cd00f3",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 104,
+                  "startColumn": 19,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f0f0ce947251cd31:1"
+          },
+          "properties": {
+            "github/alertNumber": 145,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/145"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "6fc04e11-c9e4-4638-b3df-5fc05888f995",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 93,
+                  "startColumn": 19,
+                  "startLine": 93
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "774765a8c441628c:1"
+          },
+          "properties": {
+            "github/alertNumber": 146,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/146"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 260,
+                            "startColumn": 23,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 119,
+                            "startColumn": 28,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [context] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 119,
+                            "startColumn": 13,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [context] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.context : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 260,
+                            "startColumn": 23,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 260,
+                            "startColumn": 23,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1047183e-6f41-47ce-9ff1-ca759d19a2a7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 260,
+                  "startColumn": 23,
+                  "startLine": 260
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7f27df7c14ccee57:1"
+          },
+          "properties": {
+            "github/alertNumber": 147,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/147"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 125,
+                            "startColumn": 61,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 125,
+                            "startColumn": 41,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 125,
+                            "startColumn": 61,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 125,
+                            "startColumn": 41,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 125,
+                            "startColumn": 21,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 128,
+                            "startColumn": 21,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 221,
+                            "startColumn": 17,
+                            "startLine": 221
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogAnchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 221,
+                            "startColumn": 17,
+                            "startLine": 221
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 208,
+                            "startColumn": 33,
+                            "startLine": 208
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 213,
+                            "startColumn": 33,
+                            "startLine": 213
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "24cbefb3-fea4-40ff-bb2b-b36c379c4702",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 261,
+                  "startColumn": 23,
+                  "startLine": 261
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "71bd0ddb6d90160:1"
+          },
+          "properties": {
+            "github/alertNumber": 148,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/148"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 208,
+                  "startColumn": 33,
+                  "startLine": 208
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 213,
+                  "startColumn": 33,
+                  "startLine": 213
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 132,
+                            "startColumn": 43,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 132,
+                            "startColumn": 25,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 139,
+                            "startColumn": 21,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogDate : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 223,
+                            "startColumn": 35,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 223,
+                            "startColumn": 35,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "date : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 225,
+                            "startColumn": 43,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 225,
+                            "startColumn": 25,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogDate : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fbb8a704-2188-46e0-9c4f-0ea6de311090",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 262,
+                  "startColumn": 23,
+                  "startLine": 262
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "601f9583f3741d53:1"
+          },
+          "properties": {
+            "github/alertNumber": 149,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/149"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 223,
+                  "startColumn": 35,
+                  "startLine": 223
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 143,
+                            "startColumn": 37,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 143,
+                            "startColumn": 47,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 143,
+                            "startColumn": 37,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 143,
+                            "startColumn": 47,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 142,
+                            "startColumn": 21,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 146,
+                            "startColumn": 21,
+                            "startLine": 146
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogCategoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 234,
+                            "startColumn": 67,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 234,
+                            "startColumn": 47,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 234,
+                            "startColumn": 67,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 234,
+                            "startColumn": 47,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 233,
+                            "startColumn": 21,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogCategoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2b4c2dc0-a47a-450f-b214-8367444caec6",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 263,
+                  "startColumn": 23,
+                  "startLine": 263
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcf7c87f4b14c8ff:1"
+          },
+          "properties": {
+            "github/alertNumber": 150,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/150"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 234,
+                  "startColumn": 67,
+                  "startLine": 233
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 265,
+                            "startColumn": 23,
+                            "startLine": 265
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 149,
+                            "startColumn": 43,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogPageName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 149,
+                            "startColumn": 21,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogPageName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 204,
+                            "startColumn": 33,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogPageName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 204,
+                            "startColumn": 33,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 265,
+                            "startColumn": 23,
+                            "startLine": 265
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 265,
+                            "startColumn": 23,
+                            "startLine": 265
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "45efa83c-8837-4be2-8931-36f2228c4b16",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 265,
+                  "startColumn": 23,
+                  "startLine": 265
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "361f76a52a89abcb:1"
+          },
+          "properties": {
+            "github/alertNumber": 151,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/151"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 40,
+                            "startColumn": 28,
+                            "startLine": 40
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 144,
+                            "startColumn": 16,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 69,
+                            "startColumn": 63,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 96,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 34,
+                            "startColumn": 19,
+                            "startLine": 34
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 96,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 35,
+                            "startColumn": 16,
+                            "startLine": 35
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 69,
+                            "startColumn": 63,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 69,
+                            "startColumn": 27,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ac3fa5b8-719b-44e6-8bad-b3d74ab91c17",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 95,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 69,
+                  "startColumn": 27,
+                  "startLine": 69
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "64385996b45658b9:1"
+          },
+          "properties": {
+            "github/alertNumber": 152,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/152"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 40,
+                  "startColumn": 28,
+                  "startLine": 40
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 55,
+                            "startColumn": 20,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 203,
+                            "startColumn": 16,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 86,
+                            "startColumn": 63,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 86,
+                            "startColumn": 27,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bc3bbd85-0e1b-46bd-acf7-ea2028c0d45e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 97,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 86,
+                  "startColumn": 27,
+                  "startLine": 86
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "266274d6ccd85b9f:1"
+          },
+          "properties": {
+            "github/alertNumber": 153,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/153"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 55,
+                  "startColumn": 20,
+                  "startLine": 55
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 60,
+                            "startColumn": 41,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 114,
+                            "startColumn": 19,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 115,
+                            "startColumn": 16,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 274,
+                            "startColumn": 28,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 276,
+                            "startColumn": 27,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "53b94c94-9c36-4c15-bd4a-f632405e91cf",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 98,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 276,
+                  "startColumn": 27,
+                  "startLine": 276
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "382c410a52dfc58:1"
+          },
+          "properties": {
+            "github/alertNumber": 154,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/154"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 60,
+                  "startColumn": 41,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 60,
+                            "startColumn": 41,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 114,
+                            "startColumn": 19,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 115,
+                            "startColumn": 16,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 274,
+                            "startColumn": 28,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 280,
+                            "startColumn": 31,
+                            "startLine": 280
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9d00e1ab-8dab-469b-b487-7236db6159d4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 98,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 280,
+                  "startColumn": 31,
+                  "startLine": 280
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7a806e53a7918e00:1"
+          },
+          "properties": {
+            "github/alertNumber": 155,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/155"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 60,
+                  "startColumn": 41,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 27,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 94,
+                            "endLine": 105,
+                            "startColumn": 90,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 90,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 27,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 98,
+                            "startColumn": 51,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 27,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8c730359-779c-4bb8-842d-9f7e9eec9768",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 3,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 105,
+                  "startColumn": 27,
+                  "startLine": 105
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dc0084283e27abdc:1"
+          },
+          "properties": {
+            "github/alertNumber": 156,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/156"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 55,
+                            "startColumn": 20,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 203,
+                            "startColumn": 16,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 177,
+                            "startColumn": 61,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 177,
+                            "startColumn": 27,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ebf01a0b-b542-4534-bfb8-6efc834676df",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 97,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 177,
+                  "startColumn": 27,
+                  "startLine": 177
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "258c1c096a50c8a2:1"
+          },
+          "properties": {
+            "github/alertNumber": 157,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/157"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 55,
+                  "startColumn": 20,
+                  "startLine": 55
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 44,
+                            "startColumn": 20,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 133,
+                            "startColumn": 16,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getInviteId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 76,
+                            "startColumn": 71,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 76,
+                            "startColumn": 23,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9c42bc3e-541f-4e35-b675-423d0fd90656",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 100,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 84,
+                  "endLine": 76,
+                  "startColumn": 23,
+                  "startLine": 76
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "16a0cfdfa449a0:1"
+          },
+          "properties": {
+            "github/alertNumber": 158,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/158"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 44,
+                  "startColumn": 20,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 44,
+                            "startColumn": 20,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 133,
+                            "startColumn": 16,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getInviteId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 98,
+                            "startColumn": 72,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 98,
+                            "startColumn": 23,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7f6f871e-b2f5-4877-b731-54ce3296411e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 100,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 98,
+                  "startColumn": 23,
+                  "startLine": 98
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e9fbc081fdcb3d14:1"
+          },
+          "properties": {
+            "github/alertNumber": 159,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/159"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 44,
+                  "startColumn": 20,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "73110080-451d-4b6c-830b-f18465bcbdca",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 6,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 82,
+                  "endLine": 287,
+                  "startColumn": 21,
+                  "startLine": 287
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7530e208e45d24:1"
+          },
+          "properties": {
+            "github/alertNumber": 160,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/160"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 81,
+                            "startColumn": 57,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 37,
+                            "startColumn": 19,
+                            "startLine": 37
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 38,
+                            "startColumn": 16,
+                            "startLine": 38
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 81,
+                            "startColumn": 57,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 81,
+                            "startColumn": 27,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4146ef22-9ac4-44a4-a961-81b4c30f3e47",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 27,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 81,
+                  "startColumn": 27,
+                  "startLine": 81
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "657f0b20856b6f00:1"
+          },
+          "properties": {
+            "github/alertNumber": 161,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/161"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedBookmarks : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 53,
+                            "startColumn": 22,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedBookmarks : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 264,
+                            "startColumn": 16,
+                            "startLine": 264
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSelectedBookmarks(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 127,
+                            "startColumn": 34,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 135,
+                            "startColumn": 35,
+                            "startLine": 135
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "103b0f83-8a77-45d2-a1c5-df58206c78e3",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 101,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 135,
+                  "startColumn": 35,
+                  "startLine": 135
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ff73d92a560df12b:1"
+          },
+          "properties": {
+            "github/alertNumber": 162,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/162"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 53,
+                  "startColumn": 22,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "targetFolderId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 56,
+                            "startColumn": 20,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "targetFolderId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 272,
+                            "startColumn": 16,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTargetFolderId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 224,
+                            "startColumn": 61,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 224,
+                            "startColumn": 27,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2d10dd98-c9f4-410c-b8d3-c70e1c839a69",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 101,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 224,
+                  "startColumn": 27,
+                  "startLine": 224
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "efa587683c40e896:1"
+          },
+          "properties": {
+            "github/alertNumber": 163,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/163"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 56,
+                  "startColumn": 20,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 147,
+                            "startColumn": 16,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 128,
+                            "startColumn": 58,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 128,
+                            "startColumn": 27,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f76d5c39-d677-452a-b2e9-3313791725f2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 102,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 128,
+                  "startColumn": 27,
+                  "startLine": 128
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a9719996b2e89578:1"
+          },
+          "properties": {
+            "github/alertNumber": 164,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/164"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 150,
+                            "startColumn": 40,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 102,
+                            "startColumn": 19,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "status : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 103,
+                            "startColumn": 16,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getStatus(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 150,
+                            "startColumn": 40,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 150,
+                            "startColumn": 9,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 151,
+                            "startColumn": 40,
+                            "startLine": 151
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 114,
+                            "startColumn": 45,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sortBy : SortBy"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 115,
+                            "startColumn": 16,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSortBy(...) : SortBy"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 151,
+                            "startColumn": 40,
+                            "startLine": 151
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 151,
+                            "startColumn": 9,
+                            "startLine": 151
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 152,
+                            "startColumn": 41,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 78,
+                            "startColumn": 19,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 79,
+                            "startColumn": 16,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCategoryName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 152,
+                            "startColumn": 41,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 152,
+                            "startColumn": 9,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 153,
+                            "startColumn": 38,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 86,
+                            "startColumn": 19,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tagsAsString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 87,
+                            "startColumn": 16,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTagsAsString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 153,
+                            "startColumn": 38,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 153,
+                            "startColumn": 9,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "aabcd105-470d-4698-8ebd-818b9798d4c2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 103,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 83,
+                  "startColumn": 23,
+                  "startLine": 83
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "557415acae310e58:1"
+          },
+          "properties": {
+            "github/alertNumber": 165,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/165"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 54,
+                  "startColumn": 25,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 110,
+                            "startColumn": 61,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 75,
+                            "startColumn": 19,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 76,
+                            "startColumn": 16,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 110,
+                            "startColumn": 61,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 110,
+                            "startColumn": 25,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5029a039-6a5f-47a0-abb0-663fea7995fb",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 110,
+                  "startColumn": 25,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "92ab9039ddee9a70:1"
+          },
+          "properties": {
+            "github/alertNumber": 166,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/166"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 404,
+                            "startColumn": 39,
+                            "startLine": 404
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 83,
+                            "startColumn": 19,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 84,
+                            "startColumn": 16,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTitle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 404,
+                            "startColumn": 39,
+                            "startLine": 404
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 404,
+                            "startColumn": 9,
+                            "startLine": 404
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 405,
+                            "startColumn": 40,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 115,
+                            "startColumn": 19,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 116,
+                            "startColumn": 16,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getLocale(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 405,
+                            "startColumn": 40,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 405,
+                            "startColumn": 9,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 406,
+                            "startColumn": 40,
+                            "startLine": 406
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 107,
+                            "startColumn": 19,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.status : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 108,
+                            "startColumn": 16,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getStatus(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 406,
+                            "startColumn": 40,
+                            "startLine": 406
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 406,
+                            "startColumn": 9,
+                            "startLine": 406
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 407,
+                            "startColumn": 39,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 131,
+                            "startColumn": 19,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 132,
+                            "startColumn": 16,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCategoryId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 407,
+                            "startColumn": 39,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 407,
+                            "startColumn": 9,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e615a0dd-dd70-49ca-8797-27718cfee98c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 75,
+                  "endLine": 261,
+                  "startColumn": 31,
+                  "startLine": 261
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "837ed5e1954edcee:1"
+          },
+          "properties": {
+            "github/alertNumber": 167,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/167"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 262,
+                            "startColumn": 51,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 429,
+                            "startColumn": 22,
+                            "startLine": 429
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.status : PubStatus"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 430,
+                            "startColumn": 16,
+                            "startLine": 430
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getStatus(...) : PubStatus"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 262,
+                            "startColumn": 51,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 262,
+                            "startColumn": 31,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "13f584c7-50d0-4d83-8231-c5416b165325",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 262,
+                  "startColumn": 31,
+                  "startLine": 262
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "24b2ecea910dfe8b:1"
+          },
+          "properties": {
+            "github/alertNumber": 168,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/168"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 74,
+                            "startColumn": 20,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 297,
+                            "startColumn": 16,
+                            "startLine": 297
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 179,
+                            "startColumn": 69,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2da349bd-92be-4a6c-a04e-2d97dafd0d6e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 103,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 179,
+                  "startColumn": 23,
+                  "startLine": 179
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "3c3d6d28fe0ac319:1"
+          },
+          "properties": {
+            "github/alertNumber": 169,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/169"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 74,
+                  "startColumn": 20,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 74,
+                            "startColumn": 20,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 297,
+                            "startColumn": 16,
+                            "startLine": 297
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 436,
+                            "startColumn": 67,
+                            "startLine": 436
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 436,
+                            "startColumn": 21,
+                            "startLine": 436
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3bf1578e-b07d-492f-af26-5ea8579dc111",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 436,
+                  "startColumn": 21,
+                  "startLine": 436
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e725d07e7c88b470:1"
+          },
+          "properties": {
+            "github/alertNumber": 170,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/170"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 74,
+                  "startColumn": 20,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 166,
+                            "startColumn": 33,
+                            "startLine": 166
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 240,
+                            "startColumn": 22,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 148,
+                            "startColumn": 19,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dateString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 149,
+                            "startColumn": 16,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDateString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 114,
+                            "endLine": 246,
+                            "startColumn": 27,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 206,
+                            "startColumn": 40,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 240,
+                            "startColumn": 22,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 148,
+                            "startColumn": 19,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dateString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 149,
+                            "startColumn": 16,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDateString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 114,
+                            "endLine": 246,
+                            "startColumn": 27,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1a5ab033-d569-4f9a-9463-c9d9bf89467f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 39,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                },
+                "region": {
+                  "endColumn": 114,
+                  "endLine": 246,
+                  "startColumn": 27,
+                  "startLine": 246
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "26d75d6d7a24881d:1"
+          },
+          "properties": {
+            "github/alertNumber": 171,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/171"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 126,
+                            "startColumn": 13,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 339,
+                            "startColumn": 17,
+                            "startLine": 339
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 379,
+                            "startColumn": 43,
+                            "startLine": 379
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 148,
+                            "startColumn": 19,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dateString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 149,
+                            "startColumn": 16,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDateString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 379,
+                            "startColumn": 43,
+                            "startLine": 379
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 110,
+                            "endLine": 379,
+                            "startColumn": 23,
+                            "startLine": 379
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "165296aa-4741-4461-92ef-52821a6b760e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 39,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                },
+                "region": {
+                  "endColumn": 110,
+                  "endLine": 379,
+                  "startColumn": 23,
+                  "startLine": 379
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "26d75d6f513826f9:1"
+          },
+          "properties": {
+            "github/alertNumber": 172,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/172"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 92,
+                            "startColumn": 50,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 92,
+                            "startColumn": 50,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 92,
+                            "startColumn": 23,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b3086026-bcf0-4400-88a1-4b85a1532a0f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 105,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                },
+                "region": {
+                  "endColumn": 79,
+                  "endLine": 92,
+                  "startColumn": 23,
+                  "startLine": 92
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d4dd102c08d90c1:1"
+          },
+          "properties": {
+            "github/alertNumber": 173,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/173"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 125,
+                            "startColumn": 50,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 125,
+                            "startColumn": 50,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 125,
+                            "startColumn": 23,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "632d485e-fa4c-45a2-926c-efc3ebd76c46",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 105,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                },
+                "region": {
+                  "endColumn": 79,
+                  "endLine": 125,
+                  "startColumn": 23,
+                  "startLine": 125
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d4dd102c08d90c1:2"
+          },
+          "properties": {
+            "github/alertNumber": 174,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/174"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 26,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 424,
+                            "startColumn": 16,
+                            "startLine": 424
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 116,
+                            "startColumn": 19,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 117,
+                            "startColumn": 16,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 308,
+                            "startColumn": 28,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 310,
+                            "startColumn": 27,
+                            "startLine": 310
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "52f43174-13e0-4604-a677-df6a519e0bf2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 106,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 310,
+                  "startColumn": 27,
+                  "startLine": 310
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "20a17c3234a3da05:1"
+          },
+          "properties": {
+            "github/alertNumber": 175,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/175"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 66,
+                  "startColumn": 26,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 26,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 424,
+                            "startColumn": 16,
+                            "startLine": 424
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 116,
+                            "startColumn": 19,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 117,
+                            "startColumn": 16,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 308,
+                            "startColumn": 28,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 314,
+                            "startColumn": 31,
+                            "startLine": 314
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1522117a-442d-4572-b1b5-de8a5a945d03",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 106,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 314,
+                  "startColumn": 31,
+                  "startLine": 314
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4ed70b0e5448b45e:1"
+          },
+          "properties": {
+            "github/alertNumber": 176,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/176"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 66,
+                  "startColumn": 26,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 45,
+                            "startColumn": 20,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 124,
+                            "startColumn": 16,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 64,
+                            "startColumn": 63,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 64,
+                            "startColumn": 27,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f36e5bbe-6537-4323-a72f-036bc7e9aa59",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 108,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 64,
+                  "startColumn": 27,
+                  "startLine": 64
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2de25821cd1de8b5:1"
+          },
+          "properties": {
+            "github/alertNumber": 177,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/177"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 45,
+                  "startColumn": 20,
+                  "startLine": 45
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 45,
+                            "startColumn": 20,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 124,
+                            "startColumn": 16,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 112,
+                            "startColumn": 53,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 112,
+                            "startColumn": 27,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9ec0cef9-b2a1-475f-b968-4925b8517df5",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 108,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 112,
+                  "startColumn": 27,
+                  "startLine": 112
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "65c2f23a01b2ea88:1"
+          },
+          "properties": {
+            "github/alertNumber": 178,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/178"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 45,
+                  "startColumn": 20,
+                  "startLine": 45
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 23,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 13,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 23,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d2ecaa4f-b056-48e3-b8cd-b0c84382b540",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 19,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 105,
+                  "startColumn": 23,
+                  "startLine": 105
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b5e80a74085fbf57:1"
+          },
+          "properties": {
+            "github/alertNumber": 179,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/179"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 43,
+                  "startColumn": 27,
+                  "startLine": 43
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 27,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 17,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 27,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "85602b01-9593-4e7f-bbed-20a6733d39dc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 19,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 152,
+                  "startColumn": 27,
+                  "startLine": 152
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b5e80a74085fbf57:2"
+          },
+          "properties": {
+            "github/alertNumber": 180,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/180"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 43,
+                  "startColumn": 27,
+                  "startLine": 43
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 62,
+                            "startColumn": 59,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 62,
+                            "startColumn": 23,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "88af3b95-71e2-46f7-a09c-88d057ae446c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 75,
+                  "endLine": 62,
+                  "startColumn": 23,
+                  "startLine": 62
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e935fe04bb6f9dcd:1"
+          },
+          "properties": {
+            "github/alertNumber": 181,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/181"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 84,
+                            "startColumn": 23,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 84,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "dfb174a8-5bd1-409f-abc3-84c27ee57c43",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 84,
+                  "startColumn": 23,
+                  "startLine": 83
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9cde679ae5dfb2ad:1"
+          },
+          "properties": {
+            "github/alertNumber": 182,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/182"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 44,
+                            "startColumn": 22,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 194,
+                            "startColumn": 16,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSelectedMediaFiles(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 103,
+                            "startColumn": 28,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 113,
+                            "startColumn": 31,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "391ce2d2-251d-4964-a652-d49e94adea2a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 113,
+                  "startColumn": 31,
+                  "startLine": 113
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7b8a91a5acbe13a1:1"
+          },
+          "properties": {
+            "github/alertNumber": 183,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/183"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 44,
+                  "startColumn": 22,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 76,
+                            "startColumn": 19,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDirectoryId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 205,
+                            "startColumn": 38,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 206,
+                            "startColumn": 9,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 205,
+                            "startColumn": 17,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 139,
+                            "startColumn": 21,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 140,
+                            "startColumn": 21,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 76,
+                            "startColumn": 19,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDirectoryId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 205,
+                            "startColumn": 38,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 206,
+                            "startColumn": 9,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 205,
+                            "startColumn": 17,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 139,
+                            "startColumn": 21,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 140,
+                            "startColumn": 21,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 153,
+                            "startColumn": 52,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 52,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 46,
+                            "startColumn": 20,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 44,
+                            "startColumn": 22,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 194,
+                            "startColumn": 16,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSelectedMediaFiles(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 139,
+                            "startColumn": 28,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b12d37ec-2299-4d12-94b7-62176eb6c20f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 153,
+                  "startColumn": 31,
+                  "startLine": 152
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "177096fafb4d9b75:1"
+          },
+          "properties": {
+            "github/alertNumber": 184,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/184"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 43,
+                  "startColumn": 27,
+                  "startLine": 43
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 37,
+                  "endLine": 46,
+                  "startColumn": 20,
+                  "startLine": 46
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 44,
+                  "startColumn": 22,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 135,
+                            "startColumn": 33,
+                            "startLine": 135
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 137,
+                            "startColumn": 20,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 57,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a269929a-a6ff-4677-b4f2-4821fd6408ee",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 51,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 142,
+                  "startColumn": 27,
+                  "startLine": 142
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7b4ccaec2d5b7aa9:1"
+          },
+          "properties": {
+            "github/alertNumber": 185,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/185"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 54,
+                  "startColumn": 20,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 111,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 141,
+                            "startColumn": 63,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 111,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 141,
+                            "startColumn": 63,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 111,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4d360dff-b203-46b9-b613-11ddcc18f63d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 111,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                },
+                "region": {
+                  "endColumn": 92,
+                  "endLine": 141,
+                  "startColumn": 23,
+                  "startLine": 141
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "5daecbdb7b22064c:1"
+          },
+          "properties": {
+            "github/alertNumber": 186,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/186"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 167,
+                            "startColumn": 16,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 97,
+                            "startColumn": 56,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 97,
+                            "startColumn": 23,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "6d131286-bcb6-4f20-9e4c-5db834e0d7af",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 58,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 97,
+                  "startColumn": 23,
+                  "startLine": 97
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c209e19334341b8d:1"
+          },
+          "properties": {
+            "github/alertNumber": 187,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/187"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 117,
+                            "startColumn": 68,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 117,
+                            "startColumn": 68,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 117,
+                            "startColumn": 23,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "43a35c34-4773-4849-9aa1-498298afe1fa",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 58,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 97,
+                  "endLine": 117,
+                  "startColumn": 23,
+                  "startLine": 117
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e4fb5ad4ad180ef2:1"
+          },
+          "properties": {
+            "github/alertNumber": 188,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/188"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 242,
+                            "startColumn": 16,
+                            "startLine": 242
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 88,
+                            "startColumn": 61,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 88,
+                            "startColumn": 27,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "507e73a1-0be4-4995-881c-66cc487794a2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 88,
+                  "startColumn": 27,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e04a6b6aca8504ab:1"
+          },
+          "properties": {
+            "github/alertNumber": 189,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/189"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 112,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 76,
+                            "startColumn": 56,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 112,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 76,
+                            "startColumn": 56,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 112,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 76,
+                            "startColumn": 23,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c61ed551-8088-4d0e-be80-4c0728d157ab",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 112,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 76,
+                  "startColumn": 23,
+                  "startLine": 76
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4b6cd0b661ba1437:1"
+          },
+          "properties": {
+            "github/alertNumber": 190,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/190"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 52,
+                            "startColumn": 20,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 327
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 51,
+                            "startColumn": 20,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 325,
+                            "startColumn": 17,
+                            "startLine": 325
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 51,
+                            "startColumn": 20,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 326,
+                            "startColumn": 61,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "df193433-5d5c-478e-97ee-785e0de562a6",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 51,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 327,
+                  "startColumn": 27,
+                  "startLine": 326
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "78646192f3a4dd15:1"
+          },
+          "properties": {
+            "github/alertNumber": 191,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/191"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 52,
+                  "startColumn": 20,
+                  "startLine": 52
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 51,
+                  "startColumn": 20,
+                  "startLine": 51
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 63,
+                            "startColumn": 56,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 63,
+                            "startColumn": 56,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 63,
+                            "startColumn": 23,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9b7a3384-b2ee-4ebf-b38d-5e871c20ed3e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 73,
+                  "endLine": 63,
+                  "startColumn": 23,
+                  "startLine": 63
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ccfe1500868303e1:1"
+          },
+          "properties": {
+            "github/alertNumber": 192,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/192"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 91,
+                            "startColumn": 49,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 91,
+                            "startColumn": 49,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 91,
+                            "startColumn": 22,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8cd9c723-f094-4c92-b6f4-74cac784cf52",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 91,
+                  "startColumn": 22,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "54b60de8f12c08b4:1"
+          },
+          "properties": {
+            "github/alertNumber": 193,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/193"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 49,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "templateToSave : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 128,
+                            "startColumn": 48,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 128,
+                            "startColumn": 48,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 128,
+                            "startColumn": 27,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "91d204f9-8952-4028-8fea-a9d3712c52cc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 128,
+                  "startColumn": 27,
+                  "startLine": 128
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "70849f68c2ce9e5f:1"
+          },
+          "properties": {
+            "github/alertNumber": 194,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/194"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 140,
+                            "startColumn": 54,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 140,
+                            "startColumn": 54,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 140,
+                            "startColumn": 27,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3d9e3fee-9e7b-4dc8-95fe-8d19b272771f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 140,
+                  "startColumn": 27,
+                  "startLine": 140
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c8646bc0b902a577:1"
+          },
+          "properties": {
+            "github/alertNumber": 195,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/195"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 96,
+                            "startColumn": 71,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 96,
+                            "startColumn": 71,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 96,
+                            "startColumn": 23,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2112d65d-3643-42fc-ad18-ce96aac8ac0a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 100,
+                  "endLine": 96,
+                  "startColumn": 23,
+                  "startLine": 96
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4231bb5f80349f05:1"
+          },
+          "properties": {
+            "github/alertNumber": 196,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/196"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 242,
+                            "startColumn": 16,
+                            "startLine": 242
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 127,
+                            "startColumn": 66,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 127,
+                            "startColumn": 27,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c9f14910-7283-483c-a1a2-c7617977cf8b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 83,
+                  "endLine": 127,
+                  "startColumn": 27,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d46d96d191a9b479:1"
+          },
+          "properties": {
+            "github/alertNumber": 197,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/197"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 242,
+                            "startColumn": 16,
+                            "startLine": 242
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 147,
+                            "startColumn": 68,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 147,
+                            "startColumn": 27,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b4f77c03-f435-4406-9503-cc8c68ba5416",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 147,
+                  "startColumn": 27,
+                  "startLine": 147
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e97dbb7062fc31fb:1"
+          },
+          "properties": {
+            "github/alertNumber": 198,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/198"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 80,
+                            "startColumn": 32,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 188,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 196,
+                            "startColumn": 37,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 196,
+                            "startColumn": 37,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 196,
+                            "startColumn": 37,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 80,
+                            "startColumn": 32,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 188,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 201,
+                            "startColumn": 35,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 201,
+                            "startColumn": 35,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 102,
+                            "endLine": 201,
+                            "startColumn": 35,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 80,
+                            "startColumn": 13,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 188,
+                            "startColumn": 17,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 189,
+                            "startColumn": 9,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 190,
+                            "startColumn": 9,
+                            "startLine": 190
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 191,
+                            "startColumn": 9,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 192,
+                            "startColumn": 9,
+                            "startLine": 192
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 193,
+                            "startColumn": 9,
+                            "startLine": 193
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 196,
+                            "startColumn": 13,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 80,
+                            "startColumn": 13,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 188,
+                            "startColumn": 17,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 189,
+                            "startColumn": 9,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 190,
+                            "startColumn": 9,
+                            "startLine": 190
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 191,
+                            "startColumn": 9,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 192,
+                            "startColumn": 9,
+                            "startLine": 192
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 193,
+                            "startColumn": 9,
+                            "startLine": 193
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 198,
+                            "startColumn": 13,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77a9d82c-dfa6-440c-9e5f-7f223f9d86ce",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 114,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 203,
+                  "startColumn": 13,
+                  "startLine": 203
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "3bb73411def690d:1"
+          },
+          "properties": {
+            "github/alertNumber": 199,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/199"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 220,
+                            "startColumn": 67,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 220,
+                            "startColumn": 67,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 220,
+                            "startColumn": 23,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "517cf29a-8a1c-45bf-9c7e-ecd69e19a419",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 96,
+                  "endLine": 220,
+                  "startColumn": 23,
+                  "startLine": 220
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9e58e514091e9f97:1"
+          },
+          "properties": {
+            "github/alertNumber": 200,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/200"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8db02d80-4c51-44e0-92c2-2169119510a1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 100,
+                  "startColumn": 23,
+                  "startLine": 99
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dd3dc3c309dd0057:1"
+          },
+          "properties": {
+            "github/alertNumber": 201,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/201"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 144,
+                            "startColumn": 31,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 144,
+                            "startColumn": 31,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 144,
+                            "startColumn": 31,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "26bd94b7-1658-4041-96c4-c005c825331c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 144,
+                  "startColumn": 31,
+                  "startLine": 143
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "93746885add03d92:1"
+          },
+          "properties": {
+            "github/alertNumber": 202,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/202"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 165,
+                            "startColumn": 31,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 165,
+                            "startColumn": 31,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 165,
+                            "startColumn": 31,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e5d1167c-1c7f-4048-978e-dfae2ba97b50",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 165,
+                  "startColumn": 31,
+                  "startLine": 164
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cdedbef8f62f7cef:1"
+          },
+          "properties": {
+            "github/alertNumber": 203,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/203"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 177,
+                            "startColumn": 46,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 190,
+                            "startColumn": 47,
+                            "startLine": 190
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 201,
+                            "startColumn": 43,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 125,
+                            "startColumn": 25,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "99872e47-568a-442d-9068-631fcfc1ad27",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 204,
+                  "startColumn": 31,
+                  "startLine": 203
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ed4510e0f9f0c2a6:1"
+          },
+          "properties": {
+            "github/alertNumber": 204,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/204"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 35,
+                  "endLine": 65,
+                  "startColumn": 20,
+                  "startLine": 65
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 220,
+                            "startColumn": 58,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 220,
+                            "startColumn": 58,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 220,
+                            "startColumn": 31,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f53b223d-15d5-4192-a38e-da60222f4efe",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 87,
+                  "endLine": 220,
+                  "startColumn": 31,
+                  "startLine": 220
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "177e9c611dba8940:1"
+          },
+          "properties": {
+            "github/alertNumber": 205,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/205"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 125,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5db5b8f5-4d0c-4ece-b045-801ddf1a1e0a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 64,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 125,
+                  "startColumn": 23,
+                  "startLine": 124
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bbe5f53c1943b2bb:1"
+          },
+          "properties": {
+            "github/alertNumber": 206,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/206"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 198,
+                            "startColumn": 71,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 198,
+                            "startColumn": 71,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 198,
+                            "startColumn": 27,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5d6fdd33-79a8-46b2-9625-3b679c0b0916",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 64,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 100,
+                  "endLine": 198,
+                  "startColumn": 27,
+                  "startLine": 198
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2f586fd102277914:1"
+          },
+          "properties": {
+            "github/alertNumber": 207,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/207"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 117,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 68,
+                            "startColumn": 52,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 117,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 68,
+                            "startColumn": 52,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 117,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 68,
+                            "startColumn": 23,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c4cf84aa-07ba-4e53-9876-795a481136cc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 117,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                },
+                "region": {
+                  "endColumn": 81,
+                  "endLine": 68,
+                  "startColumn": 23,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "70954d47ac23d663:1"
+          },
+          "properties": {
+            "github/alertNumber": 208,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/208"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 119,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 41,
+                            "startColumn": 22,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 119,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 140,
+                            "startColumn": 16,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 73,
+                            "startColumn": 35,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 84,
+                            "startColumn": 31,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 74,
+                            "startColumn": 20,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 297,
+                            "startColumn": 16,
+                            "startLine": 297
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 73,
+                            "startColumn": 35,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 84,
+                            "startColumn": 31,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2fa2d98a-eb0b-4321-a709-67a391452306",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 118,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 84,
+                  "startColumn": 31,
+                  "startLine": 83
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "62ca04798b6faa47:1"
+          },
+          "properties": {
+            "github/alertNumber": 209,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/209"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 41,
+                  "startColumn": 22,
+                  "startLine": 41
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 74,
+                  "startColumn": 20,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 77,
+                            "startColumn": 22,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.actionName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 316,
+                            "startColumn": 16,
+                            "startLine": 316
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 120,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 104,
+                            "endLine": 96,
+                            "startColumn": 66,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new ..[] { .. } : Object[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 120,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 105,
+                            "endLine": 96,
+                            "startColumn": 38,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "format(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 120,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 105,
+                            "endLine": 96,
+                            "startColumn": 38,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fdac3185-9439-4caa-a6cb-40ab527c5dc9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 120,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                },
+                "region": {
+                  "endColumn": 105,
+                  "endLine": 96,
+                  "startColumn": 38,
+                  "startLine": 94
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "962d445059430f65:1"
+          },
+          "properties": {
+            "github/alertNumber": 210,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/210"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 77,
+                  "startColumn": 22,
+                  "startLine": 77
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 63,
+                            "startColumn": 27,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "07315db2-c8ba-401b-a736-677391775a91",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 63,
+                  "startColumn": 27,
+                  "startLine": 63
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b34094cc00ca4ec0:1"
+          },
+          "properties": {
+            "github/alertNumber": 211,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/211"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 50,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "u : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 35,
+                            "startColumn": 30,
+                            "startLine": 35
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "u : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 36,
+                            "startColumn": 21,
+                            "startLine": 36
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 46,
+                            "startColumn": 24,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 47,
+                            "startColumn": 9,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 46,
+                            "startColumn": 17,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 36,
+                            "startColumn": 9,
+                            "startLine": 36
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 35,
+                            "startColumn": 12,
+                            "startLine": 35
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new MediacastResource(...) : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 74,
+                            "startColumn": 28,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resource : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 75,
+                            "startColumn": 59,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 68,
+                            "startColumn": 19,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 71,
+                            "startColumn": 37,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 42,
+                            "startColumn": 19,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 43,
+                            "startColumn": 16,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 43,
+                            "startColumn": 16,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 71,
+                            "startColumn": 37,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 71,
+                            "startColumn": 9,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 75,
+                            "startColumn": 59,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 75,
+                            "startColumn": 27,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4fac6e1e-19e9-49b1-ae3b-4c3712cfee5a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 75,
+                  "startColumn": 27,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c49505e0c11764a2:1"
+          },
+          "properties": {
+            "github/alertNumber": 212,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/212"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 79,
+                            "startColumn": 23,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "962b08f8-d219-485a-a960-9b5578dab531",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 79,
+                  "startColumn": 23,
+                  "startLine": 79
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1008b7dd6ea0080f:1"
+          },
+          "properties": {
+            "github/alertNumber": 213,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/213"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 82,
+                            "startColumn": 23,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "07f4add2-9229-4be1-9b8c-0c56a41697f5",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 91,
+                  "endLine": 82,
+                  "startColumn": 23,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dc3d8ec770b9fd99:1"
+          },
+          "properties": {
+            "github/alertNumber": 214,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/214"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 89,
+                            "startColumn": 68,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 89,
+                            "startColumn": 68,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 89,
+                            "startColumn": 23,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "76b3452a-3ca7-45cd-b0c2-398728b196ff",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 97,
+                  "endLine": 89,
+                  "startColumn": 23,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "710108296b62b159:1"
+          },
+          "properties": {
+            "github/alertNumber": 215,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/215"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contentsMobile : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 51,
+                            "startColumn": 20,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsMobile : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 394,
+                            "startColumn": 16,
+                            "startLine": 394
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsMobile(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 84,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contentsStandard : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 20,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsStandard : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 378,
+                            "startColumn": 16,
+                            "startLine": 378
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsStandard(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 110,
+                            "startColumn": 46,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 362,
+                            "startColumn": 16,
+                            "startLine": 362
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 41,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 102,
+                            "startColumn": 41,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 114,
+                            "endLine": 102,
+                            "startColumn": 41,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 385,
+                            "startColumn": 37,
+                            "startLine": 385
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 386,
+                            "startColumn": 33,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 386,
+                            "startColumn": 9,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 385,
+                            "startColumn": 17,
+                            "startLine": 385
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 115,
+                            "endLine": 102,
+                            "startColumn": 21,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 110,
+                            "startColumn": 46,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 377,
+                            "startColumn": 19,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 378,
+                            "startColumn": 16,
+                            "startLine": 378
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsStandard : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 378,
+                            "startColumn": 16,
+                            "startLine": 378
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsStandard(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 110,
+                            "startColumn": 46,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 362,
+                            "startColumn": 16,
+                            "startLine": 362
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 107,
+                            "startColumn": 39,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 107,
+                            "startColumn": 39,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 110,
+                            "endLine": 107,
+                            "startColumn": 39,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 401,
+                            "startColumn": 35,
+                            "startLine": 401
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 402,
+                            "startColumn": 31,
+                            "startLine": 402
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 402,
+                            "startColumn": 9,
+                            "startLine": 402
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 401,
+                            "startColumn": 17,
+                            "startLine": 401
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 111,
+                            "endLine": 107,
+                            "startColumn": 21,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 84,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 393,
+                            "startColumn": 19,
+                            "startLine": 393
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 394,
+                            "startColumn": 16,
+                            "startLine": 394
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsMobile : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 394,
+                            "startColumn": 16,
+                            "startLine": 394
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsMobile(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 84,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "60a3d9f7-c4bb-4d7c-a6b8-5d965d3d8600",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 103,
+                  "endLine": 110,
+                  "startColumn": 31,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "5018b90254358410:1"
+          },
+          "properties": {
+            "github/alertNumber": 216,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/216"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 51,
+                  "startColumn": 20,
+                  "startLine": 51
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 20,
+                  "startLine": 50
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 47,
+                  "startColumn": 28,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 182,
+                            "startColumn": 19,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 182,
+                            "startColumn": 19,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 182,
+                            "startColumn": 23,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8d06229f-0e80-4e5e-88b7-994cd61d6faf",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 182,
+                  "startColumn": 23,
+                  "startLine": 181
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd7a9eb3901d4af:1"
+          },
+          "properties": {
+            "github/alertNumber": 217,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/217"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 236,
+                            "startColumn": 27,
+                            "startLine": 236
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 236,
+                            "startColumn": 27,
+                            "startLine": 236
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 236,
+                            "startColumn": 27,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "29d72e86-dd59-4987-9c2a-0dde4984859f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 236,
+                  "startColumn": 27,
+                  "startLine": 235
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "160555fcc52f7f85:1"
+          },
+          "properties": {
+            "github/alertNumber": 218,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/218"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 294,
+                            "startColumn": 80,
+                            "startLine": 294
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 294,
+                            "startColumn": 80,
+                            "startLine": 294
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 294,
+                            "startColumn": 27,
+                            "startLine": 294
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "83747de6-4a21-4123-b49e-c04dd1665dad",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 109,
+                  "endLine": 294,
+                  "startColumn": 27,
+                  "startLine": 294
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8e79805d64699716:1"
+          },
+          "properties": {
+            "github/alertNumber": 219,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/219"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 330,
+                            "startColumn": 80,
+                            "startLine": 330
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 330,
+                            "startColumn": 80,
+                            "startLine": 330
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 330,
+                            "startColumn": 27,
+                            "startLine": 330
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5b4fa81a-a47c-42bc-aaf2-17c9250bb45b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 109,
+                  "endLine": 330,
+                  "startColumn": 27,
+                  "startLine": 330
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a30eb85eef86b517:1"
+          },
+          "properties": {
+            "github/alertNumber": 220,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/220"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 62,
+                            "startColumn": 20,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 336,
+                            "startColumn": 16,
+                            "startLine": 336
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 256,
+                            "startColumn": 54,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 256,
+                            "startColumn": 27,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ecc81f9d-475a-449f-a939-dc8dd6a876f9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 64,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 256,
+                  "startColumn": 27,
+                  "startLine": 256
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "5b57318b20ca45e8:1"
+          },
+          "properties": {
+            "github/alertNumber": 221,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/221"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 62,
+                  "startColumn": 20,
+                  "startLine": 62
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackbackUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 78,
+                            "startColumn": 20,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackbackUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 363,
+                            "startColumn": 16,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTrackbackUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 388,
+                            "startColumn": 25,
+                            "startLine": 388
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 58,
+                            "startColumn": 42,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 90,
+                            "startColumn": 28,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 90,
+                            "startColumn": 13,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 104,
+                            "startColumn": 51,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackbackURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 104,
+                            "startColumn": 51,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 104,
+                            "startColumn": 19,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4212d01b-7d6d-440f-99b0-08515d3dab8a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 22,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 104,
+                  "startColumn": 19,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6e26210b37442e22:1"
+          },
+          "properties": {
+            "github/alertNumber": 222,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/222"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 78,
+                  "startColumn": 20,
+                  "startLine": 78
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 263,
+                            "startColumn": 19,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 264,
+                            "startColumn": 16,
+                            "startLine": 264
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTitle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 114,
+                            "startColumn": 74,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 114,
+                            "startColumn": 54,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 746,
+                            "startColumn": 19,
+                            "startLine": 746
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 238,
+                            "startColumn": 19,
+                            "startLine": 238
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 239,
+                            "startColumn": 16,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWebsite(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 83,
+                            "startColumn": 37,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 100,
+                            "startColumn": 48,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 100,
+                            "startColumn": 48,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 9,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 116,
+                            "startColumn": 72,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 116,
+                            "startColumn": 52,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 24,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 95,
+                            "startColumn": 13,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 116,
+                            "startColumn": 72,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 116,
+                            "startColumn": 52,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 968,
+                            "startColumn": 52,
+                            "startLine": 968
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 968,
+                            "startColumn": 16,
+                            "startLine": 968
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 898,
+                            "startColumn": 16,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTransformedText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 1011,
+                            "startColumn": 52,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1a0dc050-4297-409e-ae3d-937a4950ab42",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 22,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 120,
+                  "startColumn": 19,
+                  "startLine": 120
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "fb28e345672306f2:1"
+          },
+          "properties": {
+            "github/alertNumber": 223,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/223"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 279,
+                            "startColumn": 41,
+                            "startLine": 279
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 198,
+                            "startColumn": 35,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 341,
+                            "startColumn": 19,
+                            "startLine": 341
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.anchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAnchor(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 19,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 48,
+                            "startColumn": 25,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 132,
+                            "startColumn": 16,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 78,
+                            "startColumn": 37,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 98,
+                            "startColumn": 41,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 198,
+                            "startColumn": 35,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 341,
+                            "startColumn": 19,
+                            "startLine": 341
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.anchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAnchor(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 19,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9fb1a72f-c885-4786-9474-e1370a72e1f2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 200,
+                  "startColumn": 19,
+                  "startLine": 200
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "183a6a3c6a791432:1"
+          },
+          "properties": {
+            "github/alertNumber": 224,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/224"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 48,
+                  "startColumn": 25,
+                  "startLine": 48
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 149,
+                            "startColumn": 37,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 177,
+                            "startColumn": 41,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 245,
+                            "startColumn": 37,
+                            "startLine": 245
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 106,
+                            "startColumn": 45,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77228324-3c04-4651-adf7-e46f886cf3d4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 209,
+                  "startColumn": 19,
+                  "startLine": 209
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dc4216bb0c101837:1"
+          },
+          "properties": {
+            "github/alertNumber": 225,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/225"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 155,
+                            "startColumn": 16,
+                            "startLine": 155
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCategory(...) : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 121,
+                            "startColumn": 41,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 252,
+                            "startColumn": 35,
+                            "startLine": 252
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 254,
+                            "startColumn": 48,
+                            "startLine": 254
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 123,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 123,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 254,
+                            "startColumn": 48,
+                            "startLine": 254
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 254,
+                            "startColumn": 19,
+                            "startLine": 254
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ce998494-bc3d-4219-b19b-5b1f7328e291",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 254,
+                  "startColumn": 19,
+                  "startLine": 254
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bdab8222b6b46f2d:1"
+          },
+          "properties": {
+            "github/alertNumber": 226,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/226"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 319,
+                            "startColumn": 41,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 362,
+                            "startColumn": 16,
+                            "startLine": 362
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 199,
+                            "startColumn": 45,
+                            "startLine": 199
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stylesheet : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 229,
+                            "startColumn": 41,
+                            "startLine": 229
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 305,
+                            "startColumn": 13,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 319,
+                            "startColumn": 41,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 49,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "templateToSave : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 134,
+                            "startColumn": 41,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bd15eefa-373a-45a2-b50b-e44b1ddf6d81",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 262,
+                  "startColumn": 19,
+                  "startLine": 262
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1db59b021fb13669:1"
+          },
+          "properties": {
+            "github/alertNumber": 227,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/227"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 47,
+                  "startColumn": 28,
+                  "startLine": 47
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f19c7918-64aa-4384-b5a0-8ef07c29aaa7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 46,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 594,
+                  "startColumn": 31,
+                  "startLine": 594
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "822a9d43166c586a:1"
+          },
+          "properties": {
+            "github/alertNumber": 228,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/228"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 132,
+                            "startColumn": 55,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 144,
+                            "startColumn": 45,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 156,
+                            "startColumn": 27,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 307,
+                            "startColumn": 19,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 308,
+                            "startColumn": 16,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 156,
+                            "startColumn": 27,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "from : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 157,
+                            "startColumn": 41,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 157,
+                            "startColumn": 27,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 189,
+                            "startColumn": 31,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 676,
+                            "startColumn": 66,
+                            "startLine": 676
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 678,
+                            "startColumn": 31,
+                            "startLine": 678
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 568,
+                            "startColumn": 62,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 606,
+                            "startColumn": 55,
+                            "startLine": 606
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 606,
+                            "startColumn": 55,
+                            "startLine": 606
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 606,
+                            "startColumn": 31,
+                            "startLine": 606
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ef231074-5b19-4031-8d46-0de9735bfcf9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 46,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 606,
+                  "startColumn": 31,
+                  "startLine": 606
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "729fc11618ef7b86:1"
+          },
+          "properties": {
+            "github/alertNumber": 229,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/229"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 86,
+                            "endLine": 78,
+                            "startColumn": 83,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 75,
+                            "startColumn": 36,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 86,
+                            "startColumn": 27,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 125,
+                            "startColumn": 63,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 99,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 105,
+                            "startColumn": 41,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 75,
+                            "startColumn": 36,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 86,
+                            "startColumn": 27,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "26b1eeac-5141-4014-a781-28ef17e39a15",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 124,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 86,
+                  "startColumn": 27,
+                  "startLine": 86
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "546e4f7b5b936523:1"
+          },
+          "properties": {
+            "github/alertNumber": 230,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/230"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "correlationGuid": "a1170d86-7c37-488c-bb35-b84a36129829",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 125,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 112,
+                  "startColumn": 32,
+                  "startLine": 112
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Local information disclosure vulnerability due to use of file readable by other local users."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "769d6f2fa26ee422:1"
+          },
+          "properties": {
+            "github/alertNumber": 231,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/231"
+          },
+          "rule": {
+            "id": "java/local-temp-file-or-directory-information-disclosure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 56
+          },
+          "ruleId": "java/local-temp-file-or-directory-information-disclosure"
+        },
+        {
+          "correlationGuid": "572ab260-9caa-473e-9ce9-f52650c68357",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 125,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java"
+                },
+                "region": {
+                  "endColumn": 88,
+                  "endLine": 385,
+                  "startColumn": 32,
+                  "startLine": 385
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Local information disclosure vulnerability due to use of file readable by other local users."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e195ced2df5b9121:1"
+          },
+          "properties": {
+            "github/alertNumber": 232,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/232"
+          },
+          "rule": {
+            "id": "java/local-temp-file-or-directory-information-disclosure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 56
+          },
+          "ruleId": "java/local-temp-file-or-directory-information-disclosure"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "\"openid\" : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 67,
+                            "startColumn": 29,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 74,
+                            "startColumn": 79,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2bfe5c94-f8fc-449e-8218-135bc89d2b5a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 126,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 37,
+                  "endLine": 67,
+                  "startColumn": 29,
+                  "startLine": 67
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a500482b991099df:1"
+          },
+          "properties": {
+            "github/alertNumber": 233,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/233"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 83,
+                  "endLine": 74,
+                  "startColumn": 79,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "\"openid\" : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "password"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 74,
+                            "startColumn": 85,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "0295d78d-5e92-4819-acd2-8a8496620a84",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 126,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 41,
+                  "endLine": 68,
+                  "startColumn": 33,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9ba9d6aa99627a6c:1"
+          },
+          "properties": {
+            "github/alertNumber": 234,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/234"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 74,
+                  "startColumn": 85,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "245cfa4f-d3f8-406f-ab07-ca7cf6a13e38",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 91,
+                  "startColumn": 90,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e905a830e1ee5337:1"
+          },
+          "properties": {
+            "github/alertNumber": 235,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/235"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 91,
+                  "startColumn": 90,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "2ebb03dc-5d07-42a7-b580-b0cb00443a82",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 102,
+                  "endLine": 91,
+                  "startColumn": 97,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e905a830e1ee5337:1"
+          },
+          "properties": {
+            "github/alertNumber": 236,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/236"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 102,
+                  "endLine": 91,
+                  "startColumn": 97,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "2912676f-9b95-409b-bd98-d3ff68c35009",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 119,
+                  "startColumn": 65,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 237,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/237"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 119,
+                  "startColumn": 65,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "1be22471-4010-453b-aae8-77bf410740c2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 77,
+                  "endLine": 119,
+                  "startColumn": 72,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 238,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/238"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 77,
+                  "endLine": 119,
+                  "startColumn": 72,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "f2073399-017c-4d54-bc6d-309c834d1932",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 60,
+                  "startColumn": 80,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d72a93cd13542b0:1"
+          },
+          "properties": {
+            "github/alertNumber": 239,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/239"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 60,
+                  "startColumn": 80,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "5d3d4716-a42f-45a8-9b26-dd603a91fe1a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 92,
+                  "endLine": 60,
+                  "startColumn": 87,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d72a93cd13542b0:1"
+          },
+          "properties": {
+            "github/alertNumber": 240,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/240"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 92,
+                  "endLine": 60,
+                  "startColumn": 87,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "af72ac60-0e42-423b-9c6a-378937a82d5a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 89,
+                  "startColumn": 73,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 241,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/241"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 89,
+                  "startColumn": 73,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "910f1f91-bfa9-40ac-b3ac-e57bf84d0642",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 89,
+                  "startColumn": 80,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 242,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/242"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 89,
+                  "startColumn": 80,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        }
+      ],
+      "tool": {
+        "driver": {
+          "name": "CodeQL",
+          "semanticVersion": "2.19.4"
+        },
+        "extensions": [
+          {
+            "name": "codeql/java-queries",
+            "rules": [
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Creating an intent with a URI pointing to a untrusted file can lead to the installation of an untrusted application."
+                },
+                "help": {
+                  "markdown": "# Android APK installation\nAndroid allows an application to install an Android Package Kit (APK) using an `Intent` with the `\"application/vnd.android.package-archive\"` MIME type. If the file used in the `Intent` is from a location that is not controlled by the application (for example, an SD card that is universally writable), this can result in the unintended installation of untrusted applications.\n\n\n## Recommendation\nYou should install packages using the `PackageInstaller` class.\n\nIf you need to install from a file, you should use a `FileProvider`. Content providers can provide more specific permissions than file system permissions can.\n\nWhen your application does not require package installations, do not add the `REQUEST_INSTALL_PACKAGES` permission in the manifest file.\n\n\n## Example\nIn the following (bad) example, the package is installed from a file which may be altered by another application:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Intent;\nimport android.net.Uri;\nimport android.os.Environment;\n\nimport java.io.File;\n\n/* Get a file from external storage */\nFile file = new File(Environment.getExternalStorageDirectory(), \"myapp.apk\");\nIntent intent = new Intent(Intent.ACTION_VIEW);\n/* Set the mimetype to APK */\nintent.setDataAndType(Uri.fromFile(file), \"application/vnd.android.package-archive\");\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed by using a `FileProvider`:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.Intent;\nimport android.net.Uri;\nimport androidx.core.content.FileProvider;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\n\nString tempFilename = \"temporary.apk\";\nbyte[] buffer = new byte[16384];\n\n/* Copy application asset into temporary file */\ntry (InputStream is = getAssets().open(assetName);\n     FileOutputStream fout = openFileOutput(tempFilename, Context.MODE_PRIVATE)) {\n    int n;\n    while ((n=is.read(buffer)) >= 0) {\n        fout.write(buffer, 0, n);\n    }\n}\n\n/* Expose temporary file with FileProvider */\nFile toInstall = new File(this.getFilesDir(), tempFilename);\nUri applicationUri = FileProvider.getUriForFile(this, \"com.example.apkprovider\", toInstall);\n\n/* Create Intent and set data to APK file. */\nIntent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);\nintent.setData(applicationUri);\nintent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed using an instance of the `android.content.pm.PackageInstaller` class:\n\n\n```java\nimport android.content.Context;\nimport android.content.Intent;\nimport android.content.pm.PackageInstaller;\n\nprivate static final String PACKAGE_INSTALLED_ACTION =\n    \"com.example.SESSION_API_PACKAGE_INSTALLED\";\n\n/* Create the package installer and session */\nPackageInstaller packageInstaller = getPackageManager().getPackageInstaller();\nPackageInstaller.SessionParams params =\n    new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);\nint sessionId = packageInstaller.createSession(params);\nsession = packageInstaller.openSession(sessionId);\n\n/* Load asset into session */\ntry (OutputStream packageInSession = session.openWrite(\"package\", 0, -1);\n     InputStream is = getAssets().open(assetName)) {\n    byte[] buffer = new byte[16384];\n    int n;\n    while ((n = is.read(buffer)) >= 0) {\n        packageInSession.write(buffer, 0, n);\n    }\n}\n\n/* Create status receiver */\nIntent intent = new Intent(this, InstallApkSessionApi.class);\nintent.setAction(PACKAGE_INSTALLED_ACTION);\nPendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);\nIntentSender statusReceiver = pendingIntent.getIntentSender();\n\n/* Commit the session */\nsession.commit(statusReceiver);\n\n```\n\n## References\n* Android Developers: [Intent.ACTION_INSTALL_PACKAGE](https://developer.android.com/reference/android/content/Intent#ACTION_INSTALL_PACKAGE).\n* Android Developers: [Manifest.permission.REQUEST_INSTALL_PACKAGES](https://developer.android.com/reference/android/Manifest.permission#REQUEST_INSTALL_PACKAGES).\n* Android Developers: [PackageInstaller](https://developer.android.com/reference/android/content/pm/PackageInstaller).\n* Android Developers: [FileProvider](https://developer.android.com/reference/androidx/core/content/FileProvider).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Android APK installation\nAndroid allows an application to install an Android Package Kit (APK) using an `Intent` with the `\"application/vnd.android.package-archive\"` MIME type. If the file used in the `Intent` is from a location that is not controlled by the application (for example, an SD card that is universally writable), this can result in the unintended installation of untrusted applications.\n\n\n## Recommendation\nYou should install packages using the `PackageInstaller` class.\n\nIf you need to install from a file, you should use a `FileProvider`. Content providers can provide more specific permissions than file system permissions can.\n\nWhen your application does not require package installations, do not add the `REQUEST_INSTALL_PACKAGES` permission in the manifest file.\n\n\n## Example\nIn the following (bad) example, the package is installed from a file which may be altered by another application:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Intent;\nimport android.net.Uri;\nimport android.os.Environment;\n\nimport java.io.File;\n\n/* Get a file from external storage */\nFile file = new File(Environment.getExternalStorageDirectory(), \"myapp.apk\");\nIntent intent = new Intent(Intent.ACTION_VIEW);\n/* Set the mimetype to APK */\nintent.setDataAndType(Uri.fromFile(file), \"application/vnd.android.package-archive\");\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed by using a `FileProvider`:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.Intent;\nimport android.net.Uri;\nimport androidx.core.content.FileProvider;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\n\nString tempFilename = \"temporary.apk\";\nbyte[] buffer = new byte[16384];\n\n/* Copy application asset into temporary file */\ntry (InputStream is = getAssets().open(assetName);\n     FileOutputStream fout = openFileOutput(tempFilename, Context.MODE_PRIVATE)) {\n    int n;\n    while ((n=is.read(buffer)) >= 0) {\n        fout.write(buffer, 0, n);\n    }\n}\n\n/* Expose temporary file with FileProvider */\nFile toInstall = new File(this.getFilesDir(), tempFilename);\nUri applicationUri = FileProvider.getUriForFile(this, \"com.example.apkprovider\", toInstall);\n\n/* Create Intent and set data to APK file. */\nIntent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);\nintent.setData(applicationUri);\nintent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed using an instance of the `android.content.pm.PackageInstaller` class:\n\n\n```java\nimport android.content.Context;\nimport android.content.Intent;\nimport android.content.pm.PackageInstaller;\n\nprivate static final String PACKAGE_INSTALLED_ACTION =\n    \"com.example.SESSION_API_PACKAGE_INSTALLED\";\n\n/* Create the package installer and session */\nPackageInstaller packageInstaller = getPackageManager().getPackageInstaller();\nPackageInstaller.SessionParams params =\n    new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);\nint sessionId = packageInstaller.createSession(params);\nsession = packageInstaller.openSession(sessionId);\n\n/* Load asset into session */\ntry (OutputStream packageInSession = session.openWrite(\"package\", 0, -1);\n     InputStream is = getAssets().open(assetName)) {\n    byte[] buffer = new byte[16384];\n    int n;\n    while ((n = is.read(buffer)) >= 0) {\n        packageInSession.write(buffer, 0, n);\n    }\n}\n\n/* Create status receiver */\nIntent intent = new Intent(this, InstallApkSessionApi.class);\nintent.setAction(PACKAGE_INSTALLED_ACTION);\nPendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);\nIntentSender statusReceiver = pendingIntent.getIntentSender();\n\n/* Commit the session */\nsession.commit(statusReceiver);\n\n```\n\n## References\n* Android Developers: [Intent.ACTION_INSTALL_PACKAGE](https://developer.android.com/reference/android/content/Intent#ACTION_INSTALL_PACKAGE).\n* Android Developers: [Manifest.permission.REQUEST_INSTALL_PACKAGES](https://developer.android.com/reference/android/Manifest.permission#REQUEST_INSTALL_PACKAGES).\n* Android Developers: [PackageInstaller](https://developer.android.com/reference/android/content/pm/PackageInstaller).\n* Android Developers: [FileProvider](https://developer.android.com/reference/androidx/core/content/FileProvider).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/android/arbitrary-apk-installation",
+                "name": "java/android/arbitrary-apk-installation",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/ArbitraryApkInstallation.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android APK installation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "note"
+                },
+                "fullDescription": {
+                  "text": "Allowing application backups may allow an attacker to extract sensitive data."
+                },
+                "help": {
+                  "markdown": "# Application backup allowed\nIn the Android manifest file, you can use the `android:allowBackup` attribute of the `application` element to define whether the application will have automatic backups or not.\n\nIf your application uses any sensitive data, you should disable automatic backups to prevent attackers from extracting it.\n\n\n## Recommendation\nFor Android applications which process sensitive data, set `android:allowBackup` to `false` in the manifest file.\n\nNote: Since Android 6.0 (Marshmallow), automatic backups for applications are switched on by default.\n\n\n## Example\nIn the following two (bad) examples, the `android:allowBackup` setting is enabled:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nIn the following (good) example, `android:allowBackup` is set to `false`:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Documentation: [Back up user data with Auto Backup](https://developer.android.com/guide/topics/data/autobackup#EnablingAutoBackup)\n* OWASP Mobile Security Testing Guide: [ Android Backups ](https://github.com/OWASP/owasp-mstg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#backups)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Application backup allowed\nIn the Android manifest file, you can use the `android:allowBackup` attribute of the `application` element to define whether the application will have automatic backups or not.\n\nIf your application uses any sensitive data, you should disable automatic backups to prevent attackers from extracting it.\n\n\n## Recommendation\nFor Android applications which process sensitive data, set `android:allowBackup` to `false` in the manifest file.\n\nNote: Since Android 6.0 (Marshmallow), automatic backups for applications are switched on by default.\n\n\n## Example\nIn the following two (bad) examples, the `android:allowBackup` setting is enabled:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nIn the following (good) example, `android:allowBackup` is set to `false`:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Documentation: [Back up user data with Auto Backup](https://developer.android.com/guide/topics/data/autobackup#EnablingAutoBackup)\n* OWASP Mobile Security Testing Guide: [ Android Backups ](https://github.com/OWASP/owasp-mstg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#backups)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/backup-enabled",
+                "name": "java/android/backup-enabled",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/AllowBackupAttributeEnabled.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Application backup allowed"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Cleartext Storage of Sensitive Information using a local database on Android allows access for users with root privileges or unexpected exposure from chained vulnerabilities."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information using a local database on Android\nSQLite is a lightweight database engine commonly used in Android devices to store data. By itself, SQLite does not offer any encryption mechanism by default and stores all data in cleartext, which introduces a risk if sensitive data like credentials, authentication tokens or personal identifiable information (PII) are directly stored in a SQLite database. The information could be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse `SQLCipher` or similar libraries to add encryption capabilities to SQLite. Alternatively, encrypt sensitive data using cryptographically secure algorithms before storing it in the database.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the database.\n\n\n```java\npublic void sqliteStorageUnsafe(Context ctx, String name, String password) {\n\t// BAD - sensitive information saved in cleartext.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\npublic void sqliteStorageSafe(Context ctx, String name, String password) {\n\t// GOOD - sensitive information encrypted with a custom method.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, encrypt(password)});\n}\n\npublic void sqlCipherStorageSafe(String name, String password, String databasePassword) {\n\t// GOOD - sensitive information saved using SQLCipher.\n\tnet.sqlcipher.database.SQLiteDatabase db = \n\t\tnet.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(\"test\", databasePassword, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* SQLCipher: [Android Application Integration](https://www.zetetic.net/sqlcipher/sqlcipher-for-android/)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Cleartext storage of sensitive information using a local database on Android\nSQLite is a lightweight database engine commonly used in Android devices to store data. By itself, SQLite does not offer any encryption mechanism by default and stores all data in cleartext, which introduces a risk if sensitive data like credentials, authentication tokens or personal identifiable information (PII) are directly stored in a SQLite database. The information could be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse `SQLCipher` or similar libraries to add encryption capabilities to SQLite. Alternatively, encrypt sensitive data using cryptographically secure algorithms before storing it in the database.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the database.\n\n\n```java\npublic void sqliteStorageUnsafe(Context ctx, String name, String password) {\n\t// BAD - sensitive information saved in cleartext.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\npublic void sqliteStorageSafe(Context ctx, String name, String password) {\n\t// GOOD - sensitive information encrypted with a custom method.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, encrypt(password)});\n}\n\npublic void sqlCipherStorageSafe(String name, String password, String databasePassword) {\n\t// GOOD - sensitive information saved using SQLCipher.\n\tnet.sqlcipher.database.SQLiteDatabase db = \n\t\tnet.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(\"test\", databasePassword, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* SQLCipher: [Android Application Integration](https://www.zetetic.net/sqlcipher/sqlcipher-for-android/)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/cleartext-storage-database",
+                "name": "java/android/cleartext-storage-database",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information using a local database on Android"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Cleartext storage of sensitive information in the Android filesystem allows access for users with root privileges or unexpected exposure from chained vulnerabilities."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information in the Android filesystem\nAndroid applications with the appropriate permissions can write files either to the device external storage or the application internal storage, depending on the application's needs. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nConsider using the `EncryptedFile` class to work with files containing sensitive data. Alternatively, use encryption algorithms to encrypt the sensitive data being stored.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext using a local file.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the filesystem.\n\n\n```java\npublic void fileSystemStorageUnsafe(String name, String password) {\n\t// BAD - sensitive data stored in cleartext\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + password);\n    fw.close();\n}\n\npublic void filesystemStorageEncryptedFileSafe(Context context, String name, String password) {\n\t// GOOD - the whole file is encrypted with androidx.security.crypto.EncryptedFile\n    File file = new File(\"some_file.txt\");\n    String masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC);\n    EncryptedFile encryptedFile = new EncryptedFile.Builder(\n        file,\n        context,\n        masterKeyAlias,\n        EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB\n    ).build();\n\tFileOutputStream encryptedOutputStream = encryptedFile.openFileOutput();\n\tencryptedOutputStream.write(name + \":\" + password);\n}\n\npublic void fileSystemStorageSafe(String name, String password) {\n\t// GOOD - sensitive data is encrypted using a custom method\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + encrypt(password));\n    fw.close();\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* Android Developers: [EncryptedFile](https://developer.android.com/reference/androidx/security/crypto/EncryptedFile)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Cleartext storage of sensitive information in the Android filesystem\nAndroid applications with the appropriate permissions can write files either to the device external storage or the application internal storage, depending on the application's needs. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nConsider using the `EncryptedFile` class to work with files containing sensitive data. Alternatively, use encryption algorithms to encrypt the sensitive data being stored.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext using a local file.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the filesystem.\n\n\n```java\npublic void fileSystemStorageUnsafe(String name, String password) {\n\t// BAD - sensitive data stored in cleartext\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + password);\n    fw.close();\n}\n\npublic void filesystemStorageEncryptedFileSafe(Context context, String name, String password) {\n\t// GOOD - the whole file is encrypted with androidx.security.crypto.EncryptedFile\n    File file = new File(\"some_file.txt\");\n    String masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC);\n    EncryptedFile encryptedFile = new EncryptedFile.Builder(\n        file,\n        context,\n        masterKeyAlias,\n        EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB\n    ).build();\n\tFileOutputStream encryptedOutputStream = encryptedFile.openFileOutput();\n\tencryptedOutputStream.write(name + \":\" + password);\n}\n\npublic void fileSystemStorageSafe(String name, String password) {\n\t// GOOD - sensitive data is encrypted using a custom method\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + encrypt(password));\n    fw.close();\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* Android Developers: [EncryptedFile](https://developer.android.com/reference/androidx/security/crypto/EncryptedFile)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/cleartext-storage-filesystem",
+                "name": "java/android/cleartext-storage-filesystem",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidFilesystem.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information in the Android filesystem"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Cleartext Storage of Sensitive Information using SharedPreferences on Android allows access for users with root privileges or unexpected exposure from chained vulnerabilities."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information using `SharedPreferences` on Android\n`SharedPreferences` is an Android API that stores application preferences using simple sets of data values. It allows you to easily save, alter, and retrieve the values stored in a user's profile. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse the `EncryptedSharedPreferences` API or other encryption algorithms for storing sensitive information.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the device.\n\n\n```java\npublic void testSetSharedPrefs(Context context, String name, String password)\n{\n\t{\n\t\t// BAD - sensitive information saved in cleartext.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - save sensitive information encrypted with a custom method.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", encrypt(name));\n\t\teditor.putString(\"password\", encrypt(password));\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - sensitive information saved using the built-in `EncryptedSharedPreferences` class in androidx.\n\t\tMasterKey masterKey = new MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS)\n\t\t\t.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)\n\t\t\t.build();\n\n\t\tSharedPreferences sharedPreferences = EncryptedSharedPreferences.create(\n\t\t\tcontext,\n\t\t\t\"secret_shared_prefs\",\n\t\t\tmasterKey,\n\t\t\tEncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,\n\t\t\tEncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM);\n\n\t\tSharedPreferences.Editor editor = sharedPreferences.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n}\n\nprivate static String encrypt(String cleartext) throws Exception {\n\t// Use an encryption or hashing algorithm in real world. The demo below just returns its\n\t// hash.\n\tMessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n\tbyte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n\tString encoded = Base64.getEncoder().encodeToString(hash);\n\treturn encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* ProAndroidDev: [Encrypted Preferences in Android](https://proandroiddev.com/encrypted-preferences-in-android-af57a89af7c8)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Cleartext storage of sensitive information using `SharedPreferences` on Android\n`SharedPreferences` is an Android API that stores application preferences using simple sets of data values. It allows you to easily save, alter, and retrieve the values stored in a user's profile. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse the `EncryptedSharedPreferences` API or other encryption algorithms for storing sensitive information.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the device.\n\n\n```java\npublic void testSetSharedPrefs(Context context, String name, String password)\n{\n\t{\n\t\t// BAD - sensitive information saved in cleartext.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - save sensitive information encrypted with a custom method.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", encrypt(name));\n\t\teditor.putString(\"password\", encrypt(password));\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - sensitive information saved using the built-in `EncryptedSharedPreferences` class in androidx.\n\t\tMasterKey masterKey = new MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS)\n\t\t\t.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)\n\t\t\t.build();\n\n\t\tSharedPreferences sharedPreferences = EncryptedSharedPreferences.create(\n\t\t\tcontext,\n\t\t\t\"secret_shared_prefs\",\n\t\t\tmasterKey,\n\t\t\tEncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,\n\t\t\tEncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM);\n\n\t\tSharedPreferences.Editor editor = sharedPreferences.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n}\n\nprivate static String encrypt(String cleartext) throws Exception {\n\t// Use an encryption or hashing algorithm in real world. The demo below just returns its\n\t// hash.\n\tMessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n\tbyte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n\tString encoded = Base64.getEncoder().encodeToString(hash);\n\treturn encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* ProAndroidDev: [Encrypted Preferences in Android](https://proandroiddev.com/encrypted-preferences-in-android-af57a89af7c8)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/cleartext-storage-shared-prefs",
+                "name": "java/android/cleartext-storage-shared-prefs",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageSharedPrefs.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information using `SharedPreferences` on Android"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An enabled debugger can allow for entry points in the application or reveal sensitive information."
+                },
+                "help": {
+                  "markdown": "# Android debuggable attribute enabled\nThe Android manifest file defines configuration settings for Android applications. In this file, the `android:debuggable` attribute of the `application` element can be used to define whether or not the application can be debugged. When set to `true`, this attribute will allow the application to be debugged even when running on a device in user mode.\n\nWhen a debugger is enabled, it could allow for entry points in the application or reveal sensitive information. As a result, `android:debuggable` should only be enabled during development and should be disabled in production builds.\n\n\n## Recommendation\nIn Android applications, either set the `android:debuggable` attribute to `false`, or do not include it in the manifest. The default value, when not included, is `false`.\n\n\n## Example\nIn the example below, the `android:debuggable` attribute is set to `true`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nThe corrected version sets the `android:debuggable` attribute to `false`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The android:debuggable attribute](https://developer.android.com/guide/topics/manifest/application-element#debug).\n* Android Developers: [Enable debugging](https://developer.android.com/studio/debug#enable-debug).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n",
+                  "text": "# Android debuggable attribute enabled\nThe Android manifest file defines configuration settings for Android applications. In this file, the `android:debuggable` attribute of the `application` element can be used to define whether or not the application can be debugged. When set to `true`, this attribute will allow the application to be debugged even when running on a device in user mode.\n\nWhen a debugger is enabled, it could allow for entry points in the application or reveal sensitive information. As a result, `android:debuggable` should only be enabled during development and should be disabled in production builds.\n\n\n## Recommendation\nIn Android applications, either set the `android:debuggable` attribute to `false`, or do not include it in the manifest. The default value, when not included, is `false`.\n\n\n## Example\nIn the example below, the `android:debuggable` attribute is set to `true`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nThe corrected version sets the `android:debuggable` attribute to `false`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The android:debuggable attribute](https://developer.android.com/guide/topics/manifest/application-element#debug).\n* Android Developers: [Enable debugging](https://developer.android.com/studio/debug#enable-debug).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n"
+                },
+                "id": "java/android/debuggable-attribute-enabled",
+                "name": "java/android/debuggable-attribute-enabled",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-489/DebuggableAttributeEnabled.ql",
+                  "security-severity": "7.2",
+                  "tags": [
+                    "external/cwe/cwe-489",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android debuggable attribute enabled"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Instantiating an Android fragment from a user-provided value may allow a malicious application to bypass access controls, exposing the application to unintended effects."
+                },
+                "help": {
+                  "markdown": "# Android fragment injection\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n",
+                  "text": "# Android fragment injection\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n"
+                },
+                "id": "java/android/fragment-injection",
+                "name": "java/android/fragment-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-470/FragmentInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-470",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android fragment injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "An insecure implementation of the 'isValidFragment' method of the 'PreferenceActivity' class may allow a malicious application to bypass access controls, exposing the application to unintended effects."
+                },
+                "help": {
+                  "markdown": "# Android fragment injection in PreferenceActivity\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n",
+                  "text": "# Android fragment injection in PreferenceActivity\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n"
+                },
+                "id": "java/android/fragment-injection-preference-activity",
+                "name": "java/android/fragment-injection-preference-activity",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-470/FragmentInjectionInPreferenceActivity.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-470",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android fragment injection in PreferenceActivity"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Sending an implicit and mutable 'PendingIntent' to an unspecified third party component may provide an attacker with access to internal components of the application or cause other unintended effects."
+                },
+                "help": {
+                  "markdown": "# Use of implicit PendingIntents\nA `PendingIntent` is used to wrap an `Intent` that will be supplied and executed by another application. When the `Intent` is executed, it behaves as if it were run directly by the supplying application, using the privileges of that application.\n\nIf a `PendingIntent` is configured to be mutable, the fields of its internal `Intent` can be changed by the receiving application if they were not previously set. This means that a mutable `PendingIntent` that has not defined a destination component (that is, an implicit `PendingIntent`) can be altered to execute an arbitrary action with the privileges of the application that created it.\n\nA malicious application can access an implicit `PendingIntent` as follows:\n\n* It is wrapped and sent as an extra of another implicit `Intent`.\n* It is sent as the action of a `Slide`.\n* It is sent as the action of a `Notification`.\n\n\nOn gaining access, the attacker can modify the underlying `Intent` and execute an arbitrary action with elevated privileges. This could give the malicious application access to private components of the victim application, or the ability to perform actions without having the necessary permissions.\n\n\n## Recommendation\nAvoid creating implicit `PendingIntent`s. This means that the underlying `Intent` should always have an explicit destination component.\n\nWhen you add the `PendingIntent` as an extra of another `Intent`, make sure that this second `Intent` also has an explicit destination component, so that it is not delivered to untrusted applications.\n\nCreate the `PendingIntent` using the flag `FLAG_IMMUTABLE` whenever possible, to prevent the destination component from modifying empty fields of the underlying `Intent`.\n\n\n## Example\nIn the following examples, a `PendingIntent` is created and wrapped as an extra of another `Intent`.\n\nIn the first example, both the `PendingIntent` and the `Intent` it is wrapped in are implicit, making them vulnerable to attack.\n\nIn the second example, the issue is avoided by adding explicit destination components to the `PendingIntent` and the wrapping `Intent`.\n\nThe third example uses the `FLAG_IMMUTABLE` flag to prevent the underlying `Intent` from being modified by the destination component.\n\n\n```java\nimport android.app.Activity;\nimport android.app.PendingIntent;\nimport android.content.Intent;\nimport android.os.Bundle;\n\npublic class ImplicitPendingIntents extends Activity {\n\n\tpublic void onCreate(Bundle savedInstance) {\n\t\t{\n\t\t\t// BAD: an implicit Intent is used to create a PendingIntent.\n\t\t\t// The PendingIntent is then added to another implicit Intent\n\t\t\t// and started.\n\t\t\tIntent baseIntent = new Intent();\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent(\"SOME_ACTION\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tsendBroadcast(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: both the PendingIntent and the wrapping Intent are explicit.\n\t\t\tIntent safeIntent = new Intent(this, AnotherActivity.class);\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, safeIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: The PendingIntent is created with FLAG_IMMUTABLE.\n\t\t\tIntent baseIntent = new Intent(\"SOME_ACTION\");\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_IMMUTABLE);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* Google Help: [ Remediation for Implicit PendingIntent Vulnerability ](https://support.google.com/faqs/answer/10437428?hl=en)\n* University of Potsdam: [ PIAnalyzer: A precise approach for PendingIntent vulnerability analysis ](https://www.cs.uni-potsdam.de/se/papers/esorics18.pdf)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n",
+                  "text": "# Use of implicit PendingIntents\nA `PendingIntent` is used to wrap an `Intent` that will be supplied and executed by another application. When the `Intent` is executed, it behaves as if it were run directly by the supplying application, using the privileges of that application.\n\nIf a `PendingIntent` is configured to be mutable, the fields of its internal `Intent` can be changed by the receiving application if they were not previously set. This means that a mutable `PendingIntent` that has not defined a destination component (that is, an implicit `PendingIntent`) can be altered to execute an arbitrary action with the privileges of the application that created it.\n\nA malicious application can access an implicit `PendingIntent` as follows:\n\n* It is wrapped and sent as an extra of another implicit `Intent`.\n* It is sent as the action of a `Slide`.\n* It is sent as the action of a `Notification`.\n\n\nOn gaining access, the attacker can modify the underlying `Intent` and execute an arbitrary action with elevated privileges. This could give the malicious application access to private components of the victim application, or the ability to perform actions without having the necessary permissions.\n\n\n## Recommendation\nAvoid creating implicit `PendingIntent`s. This means that the underlying `Intent` should always have an explicit destination component.\n\nWhen you add the `PendingIntent` as an extra of another `Intent`, make sure that this second `Intent` also has an explicit destination component, so that it is not delivered to untrusted applications.\n\nCreate the `PendingIntent` using the flag `FLAG_IMMUTABLE` whenever possible, to prevent the destination component from modifying empty fields of the underlying `Intent`.\n\n\n## Example\nIn the following examples, a `PendingIntent` is created and wrapped as an extra of another `Intent`.\n\nIn the first example, both the `PendingIntent` and the `Intent` it is wrapped in are implicit, making them vulnerable to attack.\n\nIn the second example, the issue is avoided by adding explicit destination components to the `PendingIntent` and the wrapping `Intent`.\n\nThe third example uses the `FLAG_IMMUTABLE` flag to prevent the underlying `Intent` from being modified by the destination component.\n\n\n```java\nimport android.app.Activity;\nimport android.app.PendingIntent;\nimport android.content.Intent;\nimport android.os.Bundle;\n\npublic class ImplicitPendingIntents extends Activity {\n\n\tpublic void onCreate(Bundle savedInstance) {\n\t\t{\n\t\t\t// BAD: an implicit Intent is used to create a PendingIntent.\n\t\t\t// The PendingIntent is then added to another implicit Intent\n\t\t\t// and started.\n\t\t\tIntent baseIntent = new Intent();\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent(\"SOME_ACTION\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tsendBroadcast(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: both the PendingIntent and the wrapping Intent are explicit.\n\t\t\tIntent safeIntent = new Intent(this, AnotherActivity.class);\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, safeIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: The PendingIntent is created with FLAG_IMMUTABLE.\n\t\t\tIntent baseIntent = new Intent(\"SOME_ACTION\");\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_IMMUTABLE);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* Google Help: [ Remediation for Implicit PendingIntent Vulnerability ](https://support.google.com/faqs/answer/10437428?hl=en)\n* University of Potsdam: [ PIAnalyzer: A precise approach for PendingIntent vulnerability analysis ](https://www.cs.uni-potsdam.de/se/papers/esorics18.pdf)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n"
+                },
+                "id": "java/android/implicit-pendingintents",
+                "name": "java/android/implicit-pendingintents",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-927/ImplicitPendingIntents.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-927",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of implicit PendingIntents"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Android components with an '' and no 'android:exported' attribute are implicitly exported, which can allow for improper access to the components themselves and to their data."
+                },
+                "help": {
+                  "markdown": "# Implicitly exported Android component\nThe Android manifest file defines configuration settings for Android applications. In this file, components can be declared with intent filters which specify what the components can do and what types of intents the components can respond to. If the `android:exported` attribute is omitted from the component when an intent filter is included, then the component will be implicitly exported.\n\nAn implicitly exported component could allow for improper access to the component and its data.\n\n\n## Recommendation\nExplicitly set the `android:exported` attribute for every component or use permissions to limit access to the component.\n\n\n## Example\nIn the example below, the `android:exported` attribute is omitted when an intent filter is used.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            \n                \n            \n        \n    \n\n\n```\nA corrected version sets the `android:exported` attribute to `false`.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            android:exported=\"false\"\n            \n                \n            \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The <intent-filter> element](https://developer.android.com/guide/topics/manifest/intent-filter-element).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Android Developers: [The android:permission attribute](https://developer.android.com/guide/topics/manifest/activity-element#prmsn).\n* Android Developers: [Safer component exporting](https://developer.android.com/about/versions/12/behavior-changes-12#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n",
+                  "text": "# Implicitly exported Android component\nThe Android manifest file defines configuration settings for Android applications. In this file, components can be declared with intent filters which specify what the components can do and what types of intents the components can respond to. If the `android:exported` attribute is omitted from the component when an intent filter is included, then the component will be implicitly exported.\n\nAn implicitly exported component could allow for improper access to the component and its data.\n\n\n## Recommendation\nExplicitly set the `android:exported` attribute for every component or use permissions to limit access to the component.\n\n\n## Example\nIn the example below, the `android:exported` attribute is omitted when an intent filter is used.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            \n                \n            \n        \n    \n\n\n```\nA corrected version sets the `android:exported` attribute to `false`.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            android:exported=\"false\"\n            \n                \n            \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The <intent-filter> element](https://developer.android.com/guide/topics/manifest/intent-filter-element).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Android Developers: [The android:permission attribute](https://developer.android.com/guide/topics/manifest/activity-element#prmsn).\n* Android Developers: [Safer component exporting](https://developer.android.com/about/versions/12/behavior-changes-12#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n"
+                },
+                "id": "java/android/implicitly-exported-component",
+                "name": "java/android/implicitly-exported-component",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-926/ImplicitlyExportedAndroidComponent.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-926",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Implicitly exported Android component"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Android content providers which do not configure both read and write permissions can allow permission bypass."
+                },
+                "help": {
+                  "markdown": "# Missing read or write permission in a content provider\nThe Android manifest file specifies the content providers for the application using `provider` elements. The `provider` element specifies the explicit permissions an application requires in order to access a resource using that provider. You specify the permissions using the `android:readPermission`, `android:writePermission`, or `android:permission` attributes. If you do not specify the permission required to perform an operation, the application will implicitly have access to perform that operation. For example, if you specify only `android:readPermission`, the application must have explicit permission to read data, but requires no permission to write data.\n\n\n## Recommendation\nTo prevent permission bypass, you should create `provider` elements that either specify both the `android:readPermission` and `android:writePermission` attributes, or specify the `android:permission` attribute.\n\n\n## Example\nIn the following two (bad) examples, the provider is configured with only read or write permissions. This allows a malicious application to bypass the permission check by requesting access to the unrestricted operation.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\nIn the following (good) examples, the provider is configured with full permissions, protecting it from a permissions bypass.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n## References\n* Android Documentation: [Provider element](https://developer.android.com/guide/topics/manifest/provider-element)\n* CVE-2021-41166: [Insufficient permission control in Nextcloud Android app](https://nvd.nist.gov/vuln/detail/CVE-2021-41166)\n* GitHub Security Lab Research: [Insufficient permission control in Nextcloud Android app](https://securitylab.github.com/advisories/GHSL-2021-1007-Nextcloud_Android_app/#issue-2-permission-bypass-in-disklruimagecachefileprovider-ghsl-2021-1008)\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n",
+                  "text": "# Missing read or write permission in a content provider\nThe Android manifest file specifies the content providers for the application using `provider` elements. The `provider` element specifies the explicit permissions an application requires in order to access a resource using that provider. You specify the permissions using the `android:readPermission`, `android:writePermission`, or `android:permission` attributes. If you do not specify the permission required to perform an operation, the application will implicitly have access to perform that operation. For example, if you specify only `android:readPermission`, the application must have explicit permission to read data, but requires no permission to write data.\n\n\n## Recommendation\nTo prevent permission bypass, you should create `provider` elements that either specify both the `android:readPermission` and `android:writePermission` attributes, or specify the `android:permission` attribute.\n\n\n## Example\nIn the following two (bad) examples, the provider is configured with only read or write permissions. This allows a malicious application to bypass the permission check by requesting access to the unrestricted operation.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\nIn the following (good) examples, the provider is configured with full permissions, protecting it from a permissions bypass.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n## References\n* Android Documentation: [Provider element](https://developer.android.com/guide/topics/manifest/provider-element)\n* CVE-2021-41166: [Insufficient permission control in Nextcloud Android app](https://nvd.nist.gov/vuln/detail/CVE-2021-41166)\n* GitHub Security Lab Research: [Insufficient permission control in Nextcloud Android app](https://securitylab.github.com/advisories/GHSL-2021-1007-Nextcloud_Android_app/#issue-2-permission-bypass-in-disklruimagecachefileprovider-ghsl-2021-1008)\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n"
+                },
+                "id": "java/android/incomplete-provider-permissions",
+                "name": "java/android/incomplete-provider-permissions",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-926/ContentProviderIncompletePermissions.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-926",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Missing read or write permission in a content provider"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Local authentication that does not make use of a `CryptoObject` can be bypassed."
+                },
+                "help": {
+                  "markdown": "# Insecure local authentication\nBiometric local authentication such as fingerprint recognition can be used to protect sensitive data or actions within an application. However, if this authentication does not use a `KeyStore`-backed key, it can be bypassed by a privileged malicious application, or by an attacker with physical access using application hooking tools such as Frida.\n\n\n## Recommendation\nGenerate a secure key in the Android `KeyStore`. Ensure that the `onAuthenticationSuccess` callback for a biometric prompt uses it in a way that is required for the sensitive parts of the application to function, such as by using it to decrypt sensitive data or credentials.\n\n\n## Example\nIn the following (bad) case, no `CryptoObject` is required for the biometric prompt to grant access, so it can be bypassed.\n\n\n```java\nbiometricPrompt.authenticate(\n    cancellationSignal,\n    executor,\n    new BiometricPrompt.AuthenticationCallback {\n        @Override\n        // BAD: This authentication callback does not make use of a `CryptoObject` from the `result`.\n        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n            grantAccess()\n        }\n    }\n)\n```\nIn the following (good) case, a secret key is generated in the Android `KeyStore`. The application requires this secret key for access, using it to decrypt data.\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\n\nprivate SecretKey getSecretKey() {\n    KeyStore keyStore = KeyStore.getInstance(\"AndroidKeyStore\");\n    keyStore.load(null);\n    return ((SecretKey)keyStore.getKey(\"MySecretKey\", null));\n}\n\nprivate Cipher getCipher() {\n    return Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + \"/\"\n            + KeyProperties.BLOCK_MODE_CBC + \"/\"\n            + KeyProperties.ENCRYPTION_PADDING_PKCS7);\n}\n\npublic prompt(byte[] encryptedData) {\n    Cipher cipher = getCipher();\n    SecretKey secretKey = getSecretKey();\n    cipher.init(Cipher.DECRYPT_MODE, secretKey);\n\n    biometricPrompt.authenticate(\n        new BiometricPrompt.CryptoObject(cipher),\n        cancellationSignal,\n        executor,\n        new BiometricPrompt.AuthenticationCallback() {\n            @Override\n            // GOOD: This authentication callback uses the result to decrypt some data.\n            public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n                Cipher cipher = result.getCryptoObject().getCipher();\n                byte[] decryptedData = cipher.doFinal(encryptedData);\n                grantAccessWithData(decryptedData);\n            }\n        }\n    );\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Local Authentication](https://mas.owasp.org/MASTG/Android/0x05f-Testing-Local-Authentication/)\n* OWASP Mobile Application Security: [Testing Biometric Authentication](https://mas.owasp.org/MASTG/tests/android/MASVS-AUTH/MASTG-TEST-0018/)\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication)\n* Android Developers: [Biometric Authentication](https://developer.android.com/training/sign-in/biometric-auth)\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n",
+                  "text": "# Insecure local authentication\nBiometric local authentication such as fingerprint recognition can be used to protect sensitive data or actions within an application. However, if this authentication does not use a `KeyStore`-backed key, it can be bypassed by a privileged malicious application, or by an attacker with physical access using application hooking tools such as Frida.\n\n\n## Recommendation\nGenerate a secure key in the Android `KeyStore`. Ensure that the `onAuthenticationSuccess` callback for a biometric prompt uses it in a way that is required for the sensitive parts of the application to function, such as by using it to decrypt sensitive data or credentials.\n\n\n## Example\nIn the following (bad) case, no `CryptoObject` is required for the biometric prompt to grant access, so it can be bypassed.\n\n\n```java\nbiometricPrompt.authenticate(\n    cancellationSignal,\n    executor,\n    new BiometricPrompt.AuthenticationCallback {\n        @Override\n        // BAD: This authentication callback does not make use of a `CryptoObject` from the `result`.\n        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n            grantAccess()\n        }\n    }\n)\n```\nIn the following (good) case, a secret key is generated in the Android `KeyStore`. The application requires this secret key for access, using it to decrypt data.\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\n\nprivate SecretKey getSecretKey() {\n    KeyStore keyStore = KeyStore.getInstance(\"AndroidKeyStore\");\n    keyStore.load(null);\n    return ((SecretKey)keyStore.getKey(\"MySecretKey\", null));\n}\n\nprivate Cipher getCipher() {\n    return Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + \"/\"\n            + KeyProperties.BLOCK_MODE_CBC + \"/\"\n            + KeyProperties.ENCRYPTION_PADDING_PKCS7);\n}\n\npublic prompt(byte[] encryptedData) {\n    Cipher cipher = getCipher();\n    SecretKey secretKey = getSecretKey();\n    cipher.init(Cipher.DECRYPT_MODE, secretKey);\n\n    biometricPrompt.authenticate(\n        new BiometricPrompt.CryptoObject(cipher),\n        cancellationSignal,\n        executor,\n        new BiometricPrompt.AuthenticationCallback() {\n            @Override\n            // GOOD: This authentication callback uses the result to decrypt some data.\n            public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n                Cipher cipher = result.getCryptoObject().getCipher();\n                byte[] decryptedData = cipher.doFinal(encryptedData);\n                grantAccessWithData(decryptedData);\n            }\n        }\n    );\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Local Authentication](https://mas.owasp.org/MASTG/Android/0x05f-Testing-Local-Authentication/)\n* OWASP Mobile Application Security: [Testing Biometric Authentication](https://mas.owasp.org/MASTG/tests/android/MASVS-AUTH/MASTG-TEST-0018/)\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication)\n* Android Developers: [Biometric Authentication](https://developer.android.com/training/sign-in/biometric-auth)\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n"
+                },
+                "id": "java/android/insecure-local-authentication",
+                "name": "java/android/insecure-local-authentication",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-287/AndroidInsecureLocalAuthentication.ql",
+                  "security-severity": "4.4",
+                  "tags": [
+                    "external/cwe/cwe-287",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure local authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Generation of keys with insecure parameters for local biometric authentication can allow attackers with physical access to bypass authentication checks."
+                },
+                "help": {
+                  "markdown": "# Insecurely generated keys for local authentication\nBiometric authentication, such as fingerprint recognition, can be used alongside cryptographic keys stored in the Android `KeyStore` to protect sensitive parts of the application. However, when a key generated for this purpose has certain parameters set insecurely, an attacker with physical access can bypass the authentication check using application hooking tools such as Frida.\n\n\n## Recommendation\nWhen generating a key for use with biometric authentication, ensure that the following parameters of `KeyGenParameterSpec.Builder` are set:\n\n* `setUserAuthenticationRequired` should be set to `true`; otherwise, the key can be used without user authentication.\n* `setInvalidatedByBiometricEnrollment` should be set to `true` (the default); otherwise, an attacker can use the key by enrolling additional biometrics on the device.\n* `setUserAuthenticationValidityDurationSeconds`, if used, should be set to `-1`; otherwise, non-biometric (less secure) credentials can be used to access the key. We recommend using `setUserAuthenticationParameters` instead to explicitly set both the timeout and the types of credentials that may be used.\n\n## Example\nThe following example demonstrates a key that is configured with secure paramaters:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // GOOD: Secure parameters are used to generate a key for biometric authentication.\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .setUserAuthenticationParameters(0, KeyProperties.AUTH_BIOMETRIC_STRONG)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\nIn each of the following cases, a parameter is set insecurely:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // BAD: User authentication is not required to use this key.\n        .setUserAuthenticationRequired(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        // BAD: An attacker can access this key by enrolling additional biometrics.\n        .setInvalidatedByBiometricEnrollment(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        // BAD: This key can be accessed using non-biometric credentials. \n        .setUserAuthenticationValidityDurationSeconds(30)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\n\n## References\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication).\n* Android Developers: [KeyGenParameterSpec.Builder](https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder).\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n",
+                  "text": "# Insecurely generated keys for local authentication\nBiometric authentication, such as fingerprint recognition, can be used alongside cryptographic keys stored in the Android `KeyStore` to protect sensitive parts of the application. However, when a key generated for this purpose has certain parameters set insecurely, an attacker with physical access can bypass the authentication check using application hooking tools such as Frida.\n\n\n## Recommendation\nWhen generating a key for use with biometric authentication, ensure that the following parameters of `KeyGenParameterSpec.Builder` are set:\n\n* `setUserAuthenticationRequired` should be set to `true`; otherwise, the key can be used without user authentication.\n* `setInvalidatedByBiometricEnrollment` should be set to `true` (the default); otherwise, an attacker can use the key by enrolling additional biometrics on the device.\n* `setUserAuthenticationValidityDurationSeconds`, if used, should be set to `-1`; otherwise, non-biometric (less secure) credentials can be used to access the key. We recommend using `setUserAuthenticationParameters` instead to explicitly set both the timeout and the types of credentials that may be used.\n\n## Example\nThe following example demonstrates a key that is configured with secure paramaters:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // GOOD: Secure parameters are used to generate a key for biometric authentication.\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .setUserAuthenticationParameters(0, KeyProperties.AUTH_BIOMETRIC_STRONG)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\nIn each of the following cases, a parameter is set insecurely:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // BAD: User authentication is not required to use this key.\n        .setUserAuthenticationRequired(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        // BAD: An attacker can access this key by enrolling additional biometrics.\n        .setInvalidatedByBiometricEnrollment(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        // BAD: This key can be accessed using non-biometric credentials. \n        .setUserAuthenticationValidityDurationSeconds(30)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\n\n## References\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication).\n* Android Developers: [KeyGenParameterSpec.Builder](https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder).\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n"
+                },
+                "id": "java/android/insecure-local-key-gen",
+                "name": "java/android/insecure-local-key-gen",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-287/AndroidInsecureKeys.ql",
+                  "security-severity": "4.4",
+                  "tags": [
+                    "external/cwe/cwe-287",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecurely generated keys for local authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Starting Android components with user-provided Intents can provide access to internal components of the application, increasing the attack surface and potentially causing unintended effects."
+                },
+                "help": {
+                  "markdown": "# Android Intent redirection\nAn exported Android component that obtains a user-provided Intent and uses it to launch another component can be exploited to obtain access to private, unexported components of the same app or to launch other apps' components on behalf of the victim app.\n\n\n## Recommendation\nDo not export components that start other components from a user-provided Intent. They can be made private by setting the `android:exported` property to `false` in the app's Android Manifest.\n\nIf this is not possible, restrict either which apps can send Intents to the affected component, or which components can be started from it.\n\n\n## Example\nThe following snippet contains three examples. In the first example, an arbitrary component can be started from the externally provided `forward_intent` Intent. In the second example, the destination component of the Intent is first checked to make sure it is safe. In the third example, the component that created the Intent is first checked to make sure it comes from a trusted origin.\n\n\n```java\n// BAD: A user-provided Intent is used to launch an arbitrary component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nstartActivity(forwardIntent);\n\n// GOOD: The destination component is checked before launching it\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName destinationComponent = forwardIntent.resolveActivity(getPackageManager());\nif (destinationComponent.getPackageName().equals(\"safe.package\") && \n    destinationComponent.getClassName().equals(\"SafeClass\")) {\n    startActivity(forwardIntent);\n}\n\n// GOOD: The component that sent the Intent is checked before launching the destination component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName originComponent = getCallingActivity();\nif (originComponent.getPackageName().equals(\"trusted.package\") && originComponent.getClassName().equals(\"TrustedClass\")) {\n    startActivity(forwardIntent);\n}\n\n```\n\n## References\n* Google: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* OWASP Mobile Security Testing Guide: [Intents](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05a-platform-overview#intents).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n* Common Weakness Enumeration: [CWE-940](https://cwe.mitre.org/data/definitions/940.html).\n",
+                  "text": "# Android Intent redirection\nAn exported Android component that obtains a user-provided Intent and uses it to launch another component can be exploited to obtain access to private, unexported components of the same app or to launch other apps' components on behalf of the victim app.\n\n\n## Recommendation\nDo not export components that start other components from a user-provided Intent. They can be made private by setting the `android:exported` property to `false` in the app's Android Manifest.\n\nIf this is not possible, restrict either which apps can send Intents to the affected component, or which components can be started from it.\n\n\n## Example\nThe following snippet contains three examples. In the first example, an arbitrary component can be started from the externally provided `forward_intent` Intent. In the second example, the destination component of the Intent is first checked to make sure it is safe. In the third example, the component that created the Intent is first checked to make sure it comes from a trusted origin.\n\n\n```java\n// BAD: A user-provided Intent is used to launch an arbitrary component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nstartActivity(forwardIntent);\n\n// GOOD: The destination component is checked before launching it\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName destinationComponent = forwardIntent.resolveActivity(getPackageManager());\nif (destinationComponent.getPackageName().equals(\"safe.package\") && \n    destinationComponent.getClassName().equals(\"SafeClass\")) {\n    startActivity(forwardIntent);\n}\n\n// GOOD: The component that sent the Intent is checked before launching the destination component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName originComponent = getCallingActivity();\nif (originComponent.getPackageName().equals(\"trusted.package\") && originComponent.getClassName().equals(\"TrustedClass\")) {\n    startActivity(forwardIntent);\n}\n\n```\n\n## References\n* Google: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* OWASP Mobile Security Testing Guide: [Intents](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05a-platform-overview#intents).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n* Common Weakness Enumeration: [CWE-940](https://cwe.mitre.org/data/definitions/940.html).\n"
+                },
+                "id": "java/android/intent-redirection",
+                "name": "java/android/intent-redirection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-940/AndroidIntentRedirection.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-926",
+                    "external/cwe/cwe-940",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android Intent redirection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Returning an externally provided Intent via 'setResult' may allow a malicious application to access arbitrary content providers of the vulnerable application."
+                },
+                "help": {
+                  "markdown": "# Intent URI permission manipulation\nWhen an Android component expects a result from an Activity, `startActivityForResult` can be used. The started Activity can then use `setResult` to return the appropriate data to the calling component.\n\nIf an Activity obtains the incoming, user-provided Intent and directly returns it via `setResult` without any checks, the application may be unintentionally giving arbitrary access to its content providers, even if they are not exported, as long as they are configured with the attribute `android:grantUriPermissions=\"true\"`. This happens because the attacker adds the appropriate URI permission flags to the provided Intent, which take effect once the Intent is reflected back.\n\n\n## Recommendation\nAvoid returning user-provided or untrusted Intents via `setResult`. Use a new Intent instead.\n\nIf it is required to use the received Intent, make sure that it does not contain URI permission flags, either by checking them with `Intent.getFlags` or removing them with `Intent.removeFlags`.\n\n\n## Example\nThe following sample contains three examples. In the first example, a user-provided Intent is obtained and directly returned back with `setResult`, which is dangerous. In the second example, a new Intent is created to safely return the desired data. The third example shows how the obtained Intent can be sanitized by removing dangerous flags before using it to return data to the calling component.\n\n\n```java\npublic class IntentUriPermissionManipulation extends Activity {\n\n    // BAD: the user-provided Intent is returned as-is\n    public void dangerous() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: a new Intent is created and returned\n    public void safe() {\n        Intent intent = new Intent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: the user-provided Intent is sanitized before being returned\n    public void sanitized() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        intent.removeFlags(\n                Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);\n        setResult(intent);\n    }\n}\n\n```\n\n## References\n* Google Help: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n",
+                  "text": "# Intent URI permission manipulation\nWhen an Android component expects a result from an Activity, `startActivityForResult` can be used. The started Activity can then use `setResult` to return the appropriate data to the calling component.\n\nIf an Activity obtains the incoming, user-provided Intent and directly returns it via `setResult` without any checks, the application may be unintentionally giving arbitrary access to its content providers, even if they are not exported, as long as they are configured with the attribute `android:grantUriPermissions=\"true\"`. This happens because the attacker adds the appropriate URI permission flags to the provided Intent, which take effect once the Intent is reflected back.\n\n\n## Recommendation\nAvoid returning user-provided or untrusted Intents via `setResult`. Use a new Intent instead.\n\nIf it is required to use the received Intent, make sure that it does not contain URI permission flags, either by checking them with `Intent.getFlags` or removing them with `Intent.removeFlags`.\n\n\n## Example\nThe following sample contains three examples. In the first example, a user-provided Intent is obtained and directly returned back with `setResult`, which is dangerous. In the second example, a new Intent is created to safely return the desired data. The third example shows how the obtained Intent can be sanitized by removing dangerous flags before using it to return data to the calling component.\n\n\n```java\npublic class IntentUriPermissionManipulation extends Activity {\n\n    // BAD: the user-provided Intent is returned as-is\n    public void dangerous() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: a new Intent is created and returned\n    public void safe() {\n        Intent intent = new Intent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: the user-provided Intent is sanitized before being returned\n    public void sanitized() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        intent.removeFlags(\n                Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);\n        setResult(intent);\n    }\n}\n\n```\n\n## References\n* Google Help: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n"
+                },
+                "id": "java/android/intent-uri-permission-manipulation",
+                "name": "java/android/intent-uri-permission-manipulation",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-266/IntentUriPermissionManipulation.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-266",
+                    "external/cwe/cwe-926",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Intent URI permission manipulation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Network connections that do not use certificate pinning may allow attackers to eavesdrop on communications."
+                },
+                "help": {
+                  "markdown": "# Android missing certificate pinning\nCertificate pinning is the practice of only trusting a specific set of SSL certificates, rather than those that the device trusts by default. In Android applications, it is reccomended to use certificate pinning when communicating over the network, in order to minimize the risk of machine-in-the-middle attacks from a compromised CA.\n\n\n## Recommendation\nThe easiest way to implement certificate pinning is to declare your pins in a `network-security-config` XML file. This will automatically provide certificate pinning for any network connection made by the app.\n\nAnother way to implement certificate pinning is to use the \\`CertificatePinner\\` class from the \\`okhttp\\` library.\n\nA final way to implement certificate pinning is to use a `TrustManager`, initialized from a `KeyStore` loaded with only the necessary certificates.\n\n\n## Example\nIn the first (bad) case below, a network call is performed with no certificate pinning implemented. The other (good) cases demonstrate the different ways to implement certificate pinning.\n\n\n```java\n// BAD - By default, this network call does not use certificate pinning\nURLConnection conn = new URL(\"https://example.com\").openConnection();\n```\n\n```xml\n\n\n\n\n\n    \n        ...\n    \n\n\n\n\n\n    \n        good.example.com\n        \n            ...\n        \n    \n\n```\n\n```java\n// GOOD: Certificate pinning implemented via okhttp3.CertificatePinner \nCertificatePinner certificatePinner = new CertificatePinner.Builder()\n    .add(\"example.com\", \"sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\")\n    .build();\nOkHttpClient client = new OkHttpClient.Builder()\n    .certificatePinner(certificatePinner)\n    .build();\n\nclient.newCall(new Request.Builder().url(\"https://example.com\").build()).execute();\n\n\n\n// GOOD: Certificate pinning implemented via a TrustManager\nKeyStore keyStore = KeyStore.getInstance(\"BKS\");\nkeyStore.load(resources.openRawResource(R.raw.cert), null);\n\nTrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\ntmf.init(keyStore);\n\nSSLContext sslContext = SSLContext.getInstance(\"TLS\");\nsslContext.init(null, tmf.getTrustManagers(), null);\n\nURL url = new URL(\"http://www.example.com/\");\nHttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); \n\nurlConnection.setSSLSocketFactory(sslContext.getSocketFactory());\n```\n\n## References\n* OWASP Mobile Security: [Testing Custom Certificate Stores and Certificate Pinning (MSTG-NETWORK-4)](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05g-testing-network-communication#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4).\n* Android Developers: [Network security configuration](https://developer.android.com/training/articles/security-config).\n* OkHttp: [CertificatePinner](https://square.github.io/okhttp/4.x/okhttp/okhttp3/-certificate-pinner/).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n",
+                  "text": "# Android missing certificate pinning\nCertificate pinning is the practice of only trusting a specific set of SSL certificates, rather than those that the device trusts by default. In Android applications, it is reccomended to use certificate pinning when communicating over the network, in order to minimize the risk of machine-in-the-middle attacks from a compromised CA.\n\n\n## Recommendation\nThe easiest way to implement certificate pinning is to declare your pins in a `network-security-config` XML file. This will automatically provide certificate pinning for any network connection made by the app.\n\nAnother way to implement certificate pinning is to use the \\`CertificatePinner\\` class from the \\`okhttp\\` library.\n\nA final way to implement certificate pinning is to use a `TrustManager`, initialized from a `KeyStore` loaded with only the necessary certificates.\n\n\n## Example\nIn the first (bad) case below, a network call is performed with no certificate pinning implemented. The other (good) cases demonstrate the different ways to implement certificate pinning.\n\n\n```java\n// BAD - By default, this network call does not use certificate pinning\nURLConnection conn = new URL(\"https://example.com\").openConnection();\n```\n\n```xml\n\n\n\n\n\n    \n        ...\n    \n\n\n\n\n\n    \n        good.example.com\n        \n            ...\n        \n    \n\n```\n\n```java\n// GOOD: Certificate pinning implemented via okhttp3.CertificatePinner \nCertificatePinner certificatePinner = new CertificatePinner.Builder()\n    .add(\"example.com\", \"sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\")\n    .build();\nOkHttpClient client = new OkHttpClient.Builder()\n    .certificatePinner(certificatePinner)\n    .build();\n\nclient.newCall(new Request.Builder().url(\"https://example.com\").build()).execute();\n\n\n\n// GOOD: Certificate pinning implemented via a TrustManager\nKeyStore keyStore = KeyStore.getInstance(\"BKS\");\nkeyStore.load(resources.openRawResource(R.raw.cert), null);\n\nTrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\ntmf.init(keyStore);\n\nSSLContext sslContext = SSLContext.getInstance(\"TLS\");\nsslContext.init(null, tmf.getTrustManagers(), null);\n\nURL url = new URL(\"http://www.example.com/\");\nHttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); \n\nurlConnection.setSSLSocketFactory(sslContext.getSocketFactory());\n```\n\n## References\n* OWASP Mobile Security: [Testing Custom Certificate Stores and Certificate Pinning (MSTG-NETWORK-4)](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05g-testing-network-communication#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4).\n* Android Developers: [Network security configuration](https://developer.android.com/training/articles/security-config).\n* OkHttp: [CertificatePinner](https://square.github.io/okhttp/4.x/okhttp/okhttp3/-certificate-pinner/).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n"
+                },
+                "id": "java/android/missing-certificate-pinning",
+                "name": "java/android/missing-certificate-pinning",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-295/AndroidMissingCertificatePinning.ql",
+                  "security-severity": "5.9",
+                  "tags": [
+                    "external/cwe/cwe-295",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android missing certificate pinning"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An Android application uses implicit Intents containing sensitive data in a way that exposes it to arbitrary applications on the device."
+                },
+                "help": {
+                  "markdown": "# Leaking sensitive information through an implicit Intent\nWhen an implicit Intent is used with a method such as `startActivity`, `startService`, or `sendBroadcast`, it may be read by other applications on the device.\n\nThis means that sensitive data in these Intents may be leaked.\n\n\n## Recommendation\nFor `sendBroadcast` methods, a receiver permission may be specified so that only applications with a certain permission may receive the Intent; or a `LocalBroadcastManager` may be used. Otherwise, ensure that Intents containing sensitive data have an explicit receiver class set.\n\n\n## Example\nThe following example shows two ways of broadcasting Intents. In the 'BAD' case, no \"receiver permission\" is specified. In the 'GOOD' case, \"receiver permission\" or \"receiver application\" is specified.\n\n\n```java\npublic void sendBroadcast1(Context context, String token, String refreshToken) \n{\n    {\n        // BAD: broadcast sensitive information to all listeners\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n\n    {\n        // GOOD: broadcast sensitive information only to those with permission\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent, \"com.example.user_permission\");\n    }\n\n    {\n        // GOOD: broadcast sensitive information to a specific application\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.setClassName(\"com.example2\", \"com.example2.UserInfoHandler\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n}\n```\n\n## References\n* Android Developers: [Security considerations and best practices for sending and receiving broadcasts](https://developer.android.com/guide/components/broadcasts)\n* SonarSource: [Broadcasting intents is security-sensitive](https://rules.sonarsource.com/java/type/Security%20Hotspot/RSPEC-5320)\n* Android Developer Fundamentals: [Restricting broadcasts](https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-3-working-in-the-background/lesson-7-background-tasks/7-3-c-broadcasts/7-3-c-broadcasts.html)\n* Carnegie Mellon University: [DRD03-J. Do not broadcast sensitive information using an implicit intent](https://wiki.sei.cmu.edu/confluence/display/android/DRD03-J.+Do+not+broadcast+sensitive+information+using+an+implicit+intent)\n* Android Developers: [Android LiveData Overview](https://developer.android.com/topic/libraries/architecture/livedata)\n* Oversecured: [Interception of Android implicit intents](https://blog.oversecured.com/Interception-of-Android-implicit-intents/)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n",
+                  "text": "# Leaking sensitive information through an implicit Intent\nWhen an implicit Intent is used with a method such as `startActivity`, `startService`, or `sendBroadcast`, it may be read by other applications on the device.\n\nThis means that sensitive data in these Intents may be leaked.\n\n\n## Recommendation\nFor `sendBroadcast` methods, a receiver permission may be specified so that only applications with a certain permission may receive the Intent; or a `LocalBroadcastManager` may be used. Otherwise, ensure that Intents containing sensitive data have an explicit receiver class set.\n\n\n## Example\nThe following example shows two ways of broadcasting Intents. In the 'BAD' case, no \"receiver permission\" is specified. In the 'GOOD' case, \"receiver permission\" or \"receiver application\" is specified.\n\n\n```java\npublic void sendBroadcast1(Context context, String token, String refreshToken) \n{\n    {\n        // BAD: broadcast sensitive information to all listeners\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n\n    {\n        // GOOD: broadcast sensitive information only to those with permission\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent, \"com.example.user_permission\");\n    }\n\n    {\n        // GOOD: broadcast sensitive information to a specific application\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.setClassName(\"com.example2\", \"com.example2.UserInfoHandler\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n}\n```\n\n## References\n* Android Developers: [Security considerations and best practices for sending and receiving broadcasts](https://developer.android.com/guide/components/broadcasts)\n* SonarSource: [Broadcasting intents is security-sensitive](https://rules.sonarsource.com/java/type/Security%20Hotspot/RSPEC-5320)\n* Android Developer Fundamentals: [Restricting broadcasts](https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-3-working-in-the-background/lesson-7-background-tasks/7-3-c-broadcasts/7-3-c-broadcasts.html)\n* Carnegie Mellon University: [DRD03-J. Do not broadcast sensitive information using an implicit intent](https://wiki.sei.cmu.edu/confluence/display/android/DRD03-J.+Do+not+broadcast+sensitive+information+using+an+implicit+intent)\n* Android Developers: [Android LiveData Overview](https://developer.android.com/topic/libraries/architecture/livedata)\n* Oversecured: [Interception of Android implicit intents](https://blog.oversecured.com/Interception-of-Android-implicit-intents/)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n"
+                },
+                "id": "java/android/sensitive-communication",
+                "name": "java/android/sensitive-communication",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-927/SensitiveCommunication.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-927",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Leaking sensitive information through an implicit Intent"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Allowing the keyboard to cache sensitive information may result in information leaks to other applications."
+                },
+                "help": {
+                  "markdown": "# Android sensitive keyboard cache\nWhen a user enters information in a text input field on an Android application, their input is saved to a keyboard cache which provides autocomplete suggestions and predictions. There is a risk that sensitive user data, such as passwords or banking information, may be leaked to other applications via the keyboard cache.\n\n\n## Recommendation\nFor input fields expected to accept sensitive information, use input types such as `\"textNoSuggestions\"` (or `\"textPassword\"` for a password) to ensure the input does not get stored in the keyboard cache.\n\nOptionally, instead of declaring an input type through XML, you can set the input type in your code using `TextView.setInputType()`.\n\n\n## Example\nIn the following example, the field labeled BAD allows the password to be saved to the keyboard cache, whereas the field labeled GOOD uses the `\"textPassword\"` input type to ensure the password is not cached.\n\n\n```xml\n\n\n\n    \n     \n\n    \n      \n\n```\n\n## References\n* OWASP Mobile Application Security Testing Guide: [Determining Whether the Keyboard Cache Is Disabled for Text Input Fields](https://github.com/OWASP/owasp-mastg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#determining-whether-the-keyboard-cache-is-disabled-for-text-input-fields-mstg-storage-5).\n* Android Developers: [android:inputType attribute documentation.](https://developer.android.com/reference/android/widget/TextView#attr_android:inputType)\n* Common Weakness Enumeration: [CWE-524](https://cwe.mitre.org/data/definitions/524.html).\n",
+                  "text": "# Android sensitive keyboard cache\nWhen a user enters information in a text input field on an Android application, their input is saved to a keyboard cache which provides autocomplete suggestions and predictions. There is a risk that sensitive user data, such as passwords or banking information, may be leaked to other applications via the keyboard cache.\n\n\n## Recommendation\nFor input fields expected to accept sensitive information, use input types such as `\"textNoSuggestions\"` (or `\"textPassword\"` for a password) to ensure the input does not get stored in the keyboard cache.\n\nOptionally, instead of declaring an input type through XML, you can set the input type in your code using `TextView.setInputType()`.\n\n\n## Example\nIn the following example, the field labeled BAD allows the password to be saved to the keyboard cache, whereas the field labeled GOOD uses the `\"textPassword\"` input type to ensure the password is not cached.\n\n\n```xml\n\n\n\n    \n     \n\n    \n      \n\n```\n\n## References\n* OWASP Mobile Application Security Testing Guide: [Determining Whether the Keyboard Cache Is Disabled for Text Input Fields](https://github.com/OWASP/owasp-mastg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#determining-whether-the-keyboard-cache-is-disabled-for-text-input-fields-mstg-storage-5).\n* Android Developers: [android:inputType attribute documentation.](https://developer.android.com/reference/android/widget/TextView#attr_android:inputType)\n* Common Weakness Enumeration: [CWE-524](https://cwe.mitre.org/data/definitions/524.html).\n"
+                },
+                "id": "java/android/sensitive-keyboard-cache",
+                "name": "java/android/sensitive-keyboard-cache",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-524/SensitiveKeyboardCache.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-524",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android sensitive keyboard cache"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Sensitive information exposed in a system notification can be read by an unauthorized application."
+                },
+                "help": {
+                  "markdown": "# Exposure of sensitive information to notifications\nSensitive information such as passwords or two-factor authentication (2FA) codes should not be exposed in a system notification. Notifications should not be considered secure, as other untrusted applications may be able to use a `NotificationListenerService` to read the contents of notifications.\n\n\n## Recommendation\nDo not expose sensitive data in notifications.\n\n\n## Example\nIn the following sample, the `password` is sent as part of a notification. This can allow another application to read this password.\n\n\n```java\n// BAD: `password` is exposed in a notification.\nvoid confirmPassword(String password) {\n    NotificationManager manager = NotificationManager.from(this);\n    manager.send(\n        new Notification.Builder(this, CHANNEL_ID)\n        .setContentText(\"Your password is: \" + password)\n        .build());\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - Application Notifications](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#app-notifications)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Exposure of sensitive information to notifications\nSensitive information such as passwords or two-factor authentication (2FA) codes should not be exposed in a system notification. Notifications should not be considered secure, as other untrusted applications may be able to use a `NotificationListenerService` to read the contents of notifications.\n\n\n## Recommendation\nDo not expose sensitive data in notifications.\n\n\n## Example\nIn the following sample, the `password` is sent as part of a notification. This can allow another application to read this password.\n\n\n```java\n// BAD: `password` is exposed in a notification.\nvoid confirmPassword(String password) {\n    NotificationManager manager = NotificationManager.from(this);\n    manager.send(\n        new Notification.Builder(this, CHANNEL_ID)\n        .setContentText(\"Your password is: \" + password)\n        .build());\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - Application Notifications](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#app-notifications)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/sensitive-notification",
+                "name": "java/android/sensitive-notification",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidSensitiveNotifications.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Exposure of sensitive information to notifications"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Sending sensitive data to a 'ResultReceiver' obtained from an untrusted source can allow malicious actors access to your information."
+                },
+                "help": {
+                  "markdown": "# Leaking sensitive information through a ResultReceiver\nIf a `ResultReceiver` is obtained from an untrusted source, such as an `Intent` received by an exported component, do not send it sensitive data. Otherwise, the information may be leaked to a malicious application.\n\n\n## Recommendation\nDo not send sensitive data to an untrusted `ResultReceiver`.\n\n\n## Example\nIn the following (bad) example, sensitive data is sent to an untrusted `ResultReceiver`.\n\n\n```java\n// BAD: Sensitive data is sent to an untrusted result receiver \nvoid bad(String password) {\n    Intent intent = getIntent();\n    ResultReceiver rec = intent.getParcelableExtra(\"Receiver\");\n    Bundle b = new Bundle();\n    b.putCharSequence(\"pass\", password);\n    rec.send(0, b); \n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n",
+                  "text": "# Leaking sensitive information through a ResultReceiver\nIf a `ResultReceiver` is obtained from an untrusted source, such as an `Intent` received by an exported component, do not send it sensitive data. Otherwise, the information may be leaked to a malicious application.\n\n\n## Recommendation\nDo not send sensitive data to an untrusted `ResultReceiver`.\n\n\n## Example\nIn the following (bad) example, sensitive data is sent to an untrusted `ResultReceiver`.\n\n\n```java\n// BAD: Sensitive data is sent to an untrusted result receiver \nvoid bad(String password) {\n    Intent intent = getIntent();\n    ResultReceiver rec = intent.getParcelableExtra(\"Receiver\");\n    Bundle b = new Bundle();\n    b.putCharSequence(\"pass\", password);\n    rec.send(0, b); \n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n"
+                },
+                "id": "java/android/sensitive-result-receiver",
+                "name": "java/android/sensitive-result-receiver",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-927/SensitiveResultReceiver.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-927",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Leaking sensitive information through a ResultReceiver"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Sensitive information displayed in UI text views should be properly masked."
+                },
+                "help": {
+                  "markdown": "# Exposure of sensitive information to UI text views\nSensitive information such as passwords should not be displayed in UI components unless explicitly required, to mitigate shoulder-surfing attacks.\n\n\n## Recommendation\nFor editable text fields containing sensitive information, the `inputType` should be set to `textPassword` or similar to ensure it is properly masked. Otherwise, sensitive data that must be displayed should be hidden by default, and only revealed based on an explicit user action.\n\n\n## Example\nIn the following (bad) case, sensitive information in `password` is exposed to the `TextView`.\n\n\n```java\nTextView pwView = getViewById(R.id.pw_text);\npwView.setText(\"Your password is: \" + password);\n```\nIn the following (good) case, the user must press a button to reveal sensitive information.\n\n\n```java\nTextView pwView = findViewById(R.id.pw_text);\npwView.setVisibility(View.INVISIBLE);\npwView.setText(\"Your password is: \" + password);\n\nButton showButton = findViewById(R.id.show_pw_button);\nshowButton.setOnClickListener(new View.OnClickListener() {\n    public void onClick(View v) {\n      pwView.setVisibility(View.VISIBLE);\n    }\n});\n\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - UI Components](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#ui-components)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Exposure of sensitive information to UI text views\nSensitive information such as passwords should not be displayed in UI components unless explicitly required, to mitigate shoulder-surfing attacks.\n\n\n## Recommendation\nFor editable text fields containing sensitive information, the `inputType` should be set to `textPassword` or similar to ensure it is properly masked. Otherwise, sensitive data that must be displayed should be hidden by default, and only revealed based on an explicit user action.\n\n\n## Example\nIn the following (bad) case, sensitive information in `password` is exposed to the `TextView`.\n\n\n```java\nTextView pwView = getViewById(R.id.pw_text);\npwView.setText(\"Your password is: \" + password);\n```\nIn the following (good) case, the user must press a button to reveal sensitive information.\n\n\n```java\nTextView pwView = findViewById(R.id.pw_text);\npwView.setVisibility(View.INVISIBLE);\npwView.setText(\"Your password is: \" + password);\n\nButton showButton = findViewById(R.id.show_pw_button);\nshowButton.setOnClickListener(new View.OnClickListener() {\n    public void onClick(View v) {\n      pwView.setVisibility(View.VISIBLE);\n    }\n});\n\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - UI Components](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#ui-components)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/sensitive-text",
+                "name": "java/android/sensitive-text",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidSensitiveTextField.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Exposure of sensitive information to UI text views"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "JavaScript rendered inside WebViews can access protected application files and web resources from any origin exposing them to attack."
+                },
+                "help": {
+                  "markdown": "# Unsafe resource fetching in Android WebView\nAndroid WebViews that allow externally controlled URLs to be loaded, and whose JavaScript interface is enabled, are potentially vulnerable to cross-site scripting and sensitive resource disclosure attacks.\n\nA `WebView` whose `WebSettings` object has called `setAllowFileAccessFromFileURLs(true)` or `setAllowUniversalAccessFromFileURLs(true)` must not load any untrusted web content.\n\nEnabling these settings allows malicious scripts loaded in a `file://` context to launch cross-site scripting attacks, accessing arbitrary local files including WebView cookies, session tokens, private app data or even credentials used on arbitrary web sites.\n\nThis query detects the following two scenarios:\n\n1. A vulnerability introduced by WebViews when JavaScript is enabled and remote inputs are allowed.\n1. A more severe vulnerability when \"allow cross-origin resource access\" is also enabled. This setting was deprecated in API level 30 (Android 11), but most devices are still affected, especially since some Android phones are updated slowly or no longer updated at all.\n\n## Recommendation\nOnly allow trusted web content to be displayed in WebViews when JavaScript is enabled. Disallow cross-origin resource access in WebSettings to reduce the attack surface.\n\n\n## Example\nThe following example shows both 'BAD' and 'GOOD' configurations. In the 'BAD' configuration, JavaScript and the allow access setting are enabled and URLs are loaded from externally controlled inputs. In the 'GOOD' configuration, JavaScript is disabled or only trusted web content is allowed to be loaded.\n\n\n```java\npublic class UnsafeAndroidAccess extends Activity {\n\tpublic void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.webview);\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // dangerous remote input from  the intent's Bundle of extras\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getStringExtra(\"url\"); //dangerous remote input from intent extra\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript and cross-origin resource access disabled by default on modern Android (Jellybean+) while taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // remote input\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript enabled in webview but remote user input is not allowed\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\twv.loadUrl(\"https://www.mycorp.com\");\n\t\t}\n\t}\n}\n```\n\n## References\n* Google Help: [Fixing a File-based XSS Vulnerability](https://support.google.com/faqs/answer/7668153?hl=en)\n* OWASP: [Testing JavaScript Execution in WebViews (MSTG-PLATFORM-5)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5)\n* OWASP: [Testing WebView Protocol Handlers (MSTG-PLATFORM-6)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-webview-protocol-handlers-mstg-platform-6)\n* Common Weakness Enumeration: [CWE-749](https://cwe.mitre.org/data/definitions/749.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Unsafe resource fetching in Android WebView\nAndroid WebViews that allow externally controlled URLs to be loaded, and whose JavaScript interface is enabled, are potentially vulnerable to cross-site scripting and sensitive resource disclosure attacks.\n\nA `WebView` whose `WebSettings` object has called `setAllowFileAccessFromFileURLs(true)` or `setAllowUniversalAccessFromFileURLs(true)` must not load any untrusted web content.\n\nEnabling these settings allows malicious scripts loaded in a `file://` context to launch cross-site scripting attacks, accessing arbitrary local files including WebView cookies, session tokens, private app data or even credentials used on arbitrary web sites.\n\nThis query detects the following two scenarios:\n\n1. A vulnerability introduced by WebViews when JavaScript is enabled and remote inputs are allowed.\n1. A more severe vulnerability when \"allow cross-origin resource access\" is also enabled. This setting was deprecated in API level 30 (Android 11), but most devices are still affected, especially since some Android phones are updated slowly or no longer updated at all.\n\n## Recommendation\nOnly allow trusted web content to be displayed in WebViews when JavaScript is enabled. Disallow cross-origin resource access in WebSettings to reduce the attack surface.\n\n\n## Example\nThe following example shows both 'BAD' and 'GOOD' configurations. In the 'BAD' configuration, JavaScript and the allow access setting are enabled and URLs are loaded from externally controlled inputs. In the 'GOOD' configuration, JavaScript is disabled or only trusted web content is allowed to be loaded.\n\n\n```java\npublic class UnsafeAndroidAccess extends Activity {\n\tpublic void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.webview);\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // dangerous remote input from  the intent's Bundle of extras\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getStringExtra(\"url\"); //dangerous remote input from intent extra\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript and cross-origin resource access disabled by default on modern Android (Jellybean+) while taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // remote input\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript enabled in webview but remote user input is not allowed\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\twv.loadUrl(\"https://www.mycorp.com\");\n\t\t}\n\t}\n}\n```\n\n## References\n* Google Help: [Fixing a File-based XSS Vulnerability](https://support.google.com/faqs/answer/7668153?hl=en)\n* OWASP: [Testing JavaScript Execution in WebViews (MSTG-PLATFORM-5)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5)\n* OWASP: [Testing WebView Protocol Handlers (MSTG-PLATFORM-6)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-webview-protocol-handlers-mstg-platform-6)\n* Common Weakness Enumeration: [CWE-749](https://cwe.mitre.org/data/definitions/749.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/android/unsafe-android-webview-fetch",
+                "name": "java/android/unsafe-android-webview-fetch",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-749/UnsafeAndroidAccess.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "external/cwe/cwe-749",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unsafe resource fetching in Android WebView"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Resolving externally-provided content URIs without validation can allow an attacker to access unexpected resources."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled data used in content resolution\nWhen an Android application wants to access data in a content provider, it uses the `ContentResolver` object. `ContentResolver`s communicate with an instance of a class that implements the `ContentProvider` interface via URIs with the `content://` scheme. The authority part (the first path segment) of the URI, passed as parameter to the `ContentResolver`, determines which content provider is contacted for the operation. Specific operations that act on files also support the `file://` scheme, in which case the local filesystem is queried instead. If an external component, like a malicious or compromised application, controls the URI for a `ContentResolver` operation, it can trick the vulnerable application into accessing its own private files or non-exported content providers. The attacking application might be able to get access to the file by forcing it to be copied to a public directory, like external storage, or tamper with the contents by making the application overwrite the file with unexpected data.\n\n\n## Recommendation\nIf possible, avoid using externally-provided data to determine the URI for a `ContentResolver` to use. If that is not an option, validate that the incoming URI can only reference trusted components, like an allow list of content providers and/or applications, or alternatively make sure that the URI does not reference private directories like `/data/`.\n\n\n## Example\nThis example shows three ways of opening a file using a `ContentResolver`. In the first case, externally-provided data from an intent is used directly in the file-reading operation. This allows an attacker to provide a URI of the form `/data/data/(vulnerable app package)/(private file)` to trick the application into reading it and copying it to the external storage. In the second case, an insufficient check is performed on the externally-provided URI, still leaving room for exploitation. In the third case, the URI is correctly validated before being used, making sure it does not reference any internal application files.\n\n\n```java\nimport android.content.ContentResolver;\nimport android.net.Uri;\n\npublic class Example extends Activity {\n    public void onCreate() {\n        // BAD: Externally-provided URI directly used in content resolution\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // BAD: input URI is not normalized, and check can be bypassed with \"..\" characters\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            if (path.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // GOOD: URI is properly validated to block access to internal files\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            java.nio.file.Path normalized =\n                    java.nio.file.FileSystems.getDefault().getPath(path).normalize();\n            if (normalized.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n    }\n\n    private void copyToExternalCache(InputStream is) {\n        // Reads the contents of is and writes a file in the app's external\n        // cache directory, which can be read publicly by applications in the same device.\n    }\n}\n\n```\n\n## References\n* Android developers: [Content provider basics](https://developer.android.com/guide/topics/providers/content-provider-basics)\n* [The ContentResolver class](https://developer.android.com/reference/android/content/ContentResolver)\n* Common Weakness Enumeration: [CWE-441](https://cwe.mitre.org/data/definitions/441.html).\n* Common Weakness Enumeration: [CWE-610](https://cwe.mitre.org/data/definitions/610.html).\n",
+                  "text": "# Uncontrolled data used in content resolution\nWhen an Android application wants to access data in a content provider, it uses the `ContentResolver` object. `ContentResolver`s communicate with an instance of a class that implements the `ContentProvider` interface via URIs with the `content://` scheme. The authority part (the first path segment) of the URI, passed as parameter to the `ContentResolver`, determines which content provider is contacted for the operation. Specific operations that act on files also support the `file://` scheme, in which case the local filesystem is queried instead. If an external component, like a malicious or compromised application, controls the URI for a `ContentResolver` operation, it can trick the vulnerable application into accessing its own private files or non-exported content providers. The attacking application might be able to get access to the file by forcing it to be copied to a public directory, like external storage, or tamper with the contents by making the application overwrite the file with unexpected data.\n\n\n## Recommendation\nIf possible, avoid using externally-provided data to determine the URI for a `ContentResolver` to use. If that is not an option, validate that the incoming URI can only reference trusted components, like an allow list of content providers and/or applications, or alternatively make sure that the URI does not reference private directories like `/data/`.\n\n\n## Example\nThis example shows three ways of opening a file using a `ContentResolver`. In the first case, externally-provided data from an intent is used directly in the file-reading operation. This allows an attacker to provide a URI of the form `/data/data/(vulnerable app package)/(private file)` to trick the application into reading it and copying it to the external storage. In the second case, an insufficient check is performed on the externally-provided URI, still leaving room for exploitation. In the third case, the URI is correctly validated before being used, making sure it does not reference any internal application files.\n\n\n```java\nimport android.content.ContentResolver;\nimport android.net.Uri;\n\npublic class Example extends Activity {\n    public void onCreate() {\n        // BAD: Externally-provided URI directly used in content resolution\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // BAD: input URI is not normalized, and check can be bypassed with \"..\" characters\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            if (path.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // GOOD: URI is properly validated to block access to internal files\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            java.nio.file.Path normalized =\n                    java.nio.file.FileSystems.getDefault().getPath(path).normalize();\n            if (normalized.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n    }\n\n    private void copyToExternalCache(InputStream is) {\n        // Reads the contents of is and writes a file in the app's external\n        // cache directory, which can be read publicly by applications in the same device.\n    }\n}\n\n```\n\n## References\n* Android developers: [Content provider basics](https://developer.android.com/guide/topics/providers/content-provider-basics)\n* [The ContentResolver class](https://developer.android.com/reference/android/content/ContentResolver)\n* Common Weakness Enumeration: [CWE-441](https://cwe.mitre.org/data/definitions/441.html).\n* Common Weakness Enumeration: [CWE-610](https://cwe.mitre.org/data/definitions/610.html).\n"
+                },
+                "id": "java/android/unsafe-content-uri-resolution",
+                "name": "java/android/unsafe-content-uri-resolution",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-441/UnsafeContentUriResolution.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-441",
+                    "external/cwe/cwe-610",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled data used in content resolution"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Access to content providers in a WebView can allow access to protected information by loading content:// links."
+                },
+                "help": {
+                  "markdown": "# Android WebView settings allows access to content links\nAndroid can provide access to content providers within a WebView using the `setAllowContentAccess` setting.\n\nAllowing access to content providers via `content://` URLs may allow JavaScript to access protected content.\n\n\n## Recommendation\nIf your app does not require access to the `content://` URL functionality, you should explicitly disable the setting by calling `setAllowContentAccess(false)` on the settings of the WebView.\n\n\n## Example\nIn the following (bad) example, access to `content://` URLs is explicitly allowed.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(true);\n\n```\nIn the following (good) example, access to `content://` URLs is explicitly denied.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(false);\n\n```\n\n## References\n* Android Documentation: [setAllowContentAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowContentAccess(boolean)).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Android WebView settings allows access to content links\nAndroid can provide access to content providers within a WebView using the `setAllowContentAccess` setting.\n\nAllowing access to content providers via `content://` URLs may allow JavaScript to access protected content.\n\n\n## Recommendation\nIf your app does not require access to the `content://` URL functionality, you should explicitly disable the setting by calling `setAllowContentAccess(false)` on the settings of the WebView.\n\n\n## Example\nIn the following (bad) example, access to `content://` URLs is explicitly allowed.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(true);\n\n```\nIn the following (good) example, access to `content://` URLs is explicitly denied.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(false);\n\n```\n\n## References\n* Android Documentation: [setAllowContentAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowContentAccess(boolean)).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/websettings-allow-content-access",
+                "name": "java/android/websettings-allow-content-access",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android WebView settings allows access to content links"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Enabling access to the file system in a WebView allows attackers to view sensitive information."
+                },
+                "help": {
+                  "markdown": "# Android WebSettings file access\nAllowing file access in an Android WebView can expose a device's file system to the JavaScript running in that WebView. If the JavaScript contains vulnerabilities or the WebView loads untrusted content, file access allows an attacker to steal the user's data.\n\n\n## Recommendation\nWhen possible, do not allow file access. The file access settings are disabled by default. You can explicitly disable file access by setting the following settings to `false`:\n\n* `setAllowFileAccess`\n* `setAllowFileAccessFromFileURLs`\n* `setAllowUniversalAccessFromFileURLs`\nIf your application requires access to the file system, it is best to avoid using `file://` URLs. Instead, use an alternative that loads files via HTTPS, such as `androidx.webkit.WebViewAssetLoader`.\n\n\n## Example\nIn the following (bad) example, the WebView is configured with settings that allow local file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(true);\nsettings.setAllowFileAccessFromURLs(true);\nsettings.setAllowUniversalAccessFromURLs(true);\n\n```\nIn the following (good) example, the WebView is configured to disallow file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(false);\nsettings.setAllowFileAccessFromURLs(false);\nsettings.setAllowUniversalAccessFromURLs(false);\n\n```\nAs mentioned previously, asset loaders can load files without file system access. In the following (good) example, an asset loader is configured to load assets over HTTPS.\n\n\n```java\nWebViewAssetLoader loader = new WebViewAssetLoader.Builder()\n    // Replace the domain with a domain you control, or use the default\n    // appassets.androidplatform.com\n    .setDomain(\"appassets.example.com\")\n    .addPathHandler(\"/resources\", new AssetsPathHandler(this))\n    .build();\n\nwebView.setWebViewClient(new WebViewClientCompat() {\n    @Override\n    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {\n        return assetLoader.shouldInterceptRequest(request.getUrl());\n    }\n});\n\nwebView.loadUrl(\"https://appassets.example.com/resources/www/index.html\");\n\n```\n\n## References\n* Android documentation: [WebSettings.setAllowFileAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccess(boolean)).\n* Android documentation: [WebSettings.setAllowFileAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccessFromFileURLs(boolean)).\n* Android documentation: [WebSettings.setAllowUniversalAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowUniversalAccessFromFileURLs(boolean)).\n* Android documentation: [WebViewAssetLoader](https://developer.android.com/reference/androidx/webkit/WebViewAssetLoader).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Android WebSettings file access\nAllowing file access in an Android WebView can expose a device's file system to the JavaScript running in that WebView. If the JavaScript contains vulnerabilities or the WebView loads untrusted content, file access allows an attacker to steal the user's data.\n\n\n## Recommendation\nWhen possible, do not allow file access. The file access settings are disabled by default. You can explicitly disable file access by setting the following settings to `false`:\n\n* `setAllowFileAccess`\n* `setAllowFileAccessFromFileURLs`\n* `setAllowUniversalAccessFromFileURLs`\nIf your application requires access to the file system, it is best to avoid using `file://` URLs. Instead, use an alternative that loads files via HTTPS, such as `androidx.webkit.WebViewAssetLoader`.\n\n\n## Example\nIn the following (bad) example, the WebView is configured with settings that allow local file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(true);\nsettings.setAllowFileAccessFromURLs(true);\nsettings.setAllowUniversalAccessFromURLs(true);\n\n```\nIn the following (good) example, the WebView is configured to disallow file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(false);\nsettings.setAllowFileAccessFromURLs(false);\nsettings.setAllowUniversalAccessFromURLs(false);\n\n```\nAs mentioned previously, asset loaders can load files without file system access. In the following (good) example, an asset loader is configured to load assets over HTTPS.\n\n\n```java\nWebViewAssetLoader loader = new WebViewAssetLoader.Builder()\n    // Replace the domain with a domain you control, or use the default\n    // appassets.androidplatform.com\n    .setDomain(\"appassets.example.com\")\n    .addPathHandler(\"/resources\", new AssetsPathHandler(this))\n    .build();\n\nwebView.setWebViewClient(new WebViewClientCompat() {\n    @Override\n    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {\n        return assetLoader.shouldInterceptRequest(request.getUrl());\n    }\n});\n\nwebView.loadUrl(\"https://appassets.example.com/resources/www/index.html\");\n\n```\n\n## References\n* Android documentation: [WebSettings.setAllowFileAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccess(boolean)).\n* Android documentation: [WebSettings.setAllowFileAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccessFromFileURLs(boolean)).\n* Android documentation: [WebSettings.setAllowUniversalAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowUniversalAccessFromFileURLs(boolean)).\n* Android documentation: [WebViewAssetLoader](https://developer.android.com/reference/androidx/webkit/WebViewAssetLoader).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/websettings-file-access",
+                "name": "java/android/websettings-file-access",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsFileAccess.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android WebSettings file access"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Enabling JavaScript execution in a WebView can result in cross-site scripting attacks."
+                },
+                "help": {
+                  "markdown": "# Android WebView JavaScript settings\nEnabling JavaScript in an Android WebView allows the execution of JavaScript code in the context of the running application. This creates a cross-site scripting vulnerability.\n\nFor example, if your application's WebView allows for visiting web pages that you do not trust, it is possible for an attacker to lead the user to a page which loads malicious JavaScript.\n\nYou can enable or disable Javascript execution using the `setJavaScriptEnabled` method of the settings of a WebView.\n\n\n## Recommendation\nJavaScript execution is disabled by default. You can explicitly disable it by calling `setJavaScriptEnabled(false)` on the settings of the WebView.\n\nIf JavaScript is necessary, only load content from trusted servers using encrypted channels, such as HTTPS with certificate verification.\n\n\n## Example\nIn the following (bad) example, a WebView has JavaScript enabled in its settings:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(true);\n\n```\nIn the following (good) example, a WebView explicitly disallows JavaScript execution:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(false);\n\n```\n\n## References\n* Android documentation: [setJavaScriptEnabled](https://developer.android.com/reference/android/webkit/WebSettings#setJavaScriptEnabled(boolean))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Android WebView JavaScript settings\nEnabling JavaScript in an Android WebView allows the execution of JavaScript code in the context of the running application. This creates a cross-site scripting vulnerability.\n\nFor example, if your application's WebView allows for visiting web pages that you do not trust, it is possible for an attacker to lead the user to a page which loads malicious JavaScript.\n\nYou can enable or disable Javascript execution using the `setJavaScriptEnabled` method of the settings of a WebView.\n\n\n## Recommendation\nJavaScript execution is disabled by default. You can explicitly disable it by calling `setJavaScriptEnabled(false)` on the settings of the WebView.\n\nIf JavaScript is necessary, only load content from trusted servers using encrypted channels, such as HTTPS with certificate verification.\n\n\n## Example\nIn the following (bad) example, a WebView has JavaScript enabled in its settings:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(true);\n\n```\nIn the following (good) example, a WebView explicitly disallows JavaScript execution:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(false);\n\n```\n\n## References\n* Android documentation: [setJavaScriptEnabled](https://developer.android.com/reference/android/webkit/WebSettings#setJavaScriptEnabled(boolean))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/android/websettings-javascript-enabled",
+                "name": "java/android/websettings-javascript-enabled",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-079/AndroidWebViewSettingsEnabledJavaScript.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android WebView JavaScript settings"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Exposing a Java object in a WebView with a JavaScript interface can lead to malicious JavaScript controlling the application."
+                },
+                "help": {
+                  "markdown": "# Access Java object methods through JavaScript exposure\nCalling the `addJavascriptInterface` method of the `android.webkit.WebView` class allows the web pages of a WebView to access a Java object's methods via JavaScript.\n\nObjects exposed to JavaScript are available in all frames of the WebView.\n\n\n## Recommendation\nIf you need to expose Java objects to JavaScript, guarantee that no untrusted third-party content is loaded into the WebView.\n\n\n## Example\nIn the following (bad) example, a Java object is exposed to JavaScript.\n\n\n```java\nimport android.webkit.JavascriptInterface;\nimport android.database.sqlite.SQLiteOpenHelper;\n\nclass ExposedObject extends SQLiteOpenHelper {\n    @JavascriptInterface\n    public String studentEmail(String studentName) {\n        // SQL injection\n        String query = \"SELECT email FROM students WHERE studentname = '\" + studentName + \"'\";\n\n        Cursor cursor = db.rawQuery(query, null);\n        cursor.moveToFirst();\n        String email = cursor.getString(0);\n\n        return email;\n    }\n}\n\nwebview.getSettings().setJavaScriptEnabled(true);\nwebview.addJavaScriptInterface(new ExposedObject(), \"exposedObject\");\nwebview.loadData(\"\", \"text/html\", null);\n\nString name = \"Robert'; DROP TABLE students; --\";\nwebview.loadUrl(\"javascript:alert(exposedObject.studentEmail(\\\"\"+ name +\"\\\"))\");\n\n```\n\n## References\n* Android Documentation: [addJavascriptInterface](https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Access Java object methods through JavaScript exposure\nCalling the `addJavascriptInterface` method of the `android.webkit.WebView` class allows the web pages of a WebView to access a Java object's methods via JavaScript.\n\nObjects exposed to JavaScript are available in all frames of the WebView.\n\n\n## Recommendation\nIf you need to expose Java objects to JavaScript, guarantee that no untrusted third-party content is loaded into the WebView.\n\n\n## Example\nIn the following (bad) example, a Java object is exposed to JavaScript.\n\n\n```java\nimport android.webkit.JavascriptInterface;\nimport android.database.sqlite.SQLiteOpenHelper;\n\nclass ExposedObject extends SQLiteOpenHelper {\n    @JavascriptInterface\n    public String studentEmail(String studentName) {\n        // SQL injection\n        String query = \"SELECT email FROM students WHERE studentname = '\" + studentName + \"'\";\n\n        Cursor cursor = db.rawQuery(query, null);\n        cursor.moveToFirst();\n        String email = cursor.getString(0);\n\n        return email;\n    }\n}\n\nwebview.getSettings().setJavaScriptEnabled(true);\nwebview.addJavaScriptInterface(new ExposedObject(), \"exposedObject\");\nwebview.loadData(\"\", \"text/html\", null);\n\nString name = \"Robert'; DROP TABLE students; --\";\nwebview.loadUrl(\"javascript:alert(exposedObject.studentEmail(\\\"\"+ name +\"\\\"))\");\n\n```\n\n## References\n* Android Documentation: [addJavascriptInterface](https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/android/webview-addjavascriptinterface",
+                "name": "java/android/webview-addjavascriptinterface",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-079/AndroidWebViewAddJavascriptInterface.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Access Java object methods through JavaScript exposure"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Enabling Webview debugging in production builds can expose entry points or leak sensitive information."
+                },
+                "help": {
+                  "markdown": "# Android Webview debugging enabled\nThe `WebView.setWebContentsDebuggingEnabled` method enables or disables the contents of any `WebView` in the application to be debugged.\n\nYou should only enable debugging features during development. When you create a production build, you should disable it. If you enable debugging features, this can make your code vulnerable by adding entry points, or leaking sensitive information.\n\n\n## Recommendation\nEnsure that debugging features are not enabled in production builds, such as by guarding calls to `WebView.setWebContentsDebuggingEnabled(true)` by a flag that is only enabled in debug builds.\n\n\n## Example\nIn the first (bad) example, WebView debugging is always enabled. whereas the GOOD case only enables it if the `android:debuggable` attribute is set to `true`.\n\n\n```java\n// BAD - debugging is always enabled \nWebView.setWebContentsDebuggingEnabled(true);\n\n// GOOD - debugging is only enabled when this is a debug build, as indicated by the debuggable flag being set.\nif (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {\n    WebView.setWebContentsDebuggingEnabled(true);\n}\n```\n\n## References\n* Android Developers: [setWebContentsDebuggingEnabled](https://developer.android.com/reference/android/webkit/WebView.html#setWebContentsDebuggingEnabled(boolean)).\n* Android Developers: [Remote debugging WebViews](https://developer.chrome.com/docs/devtools/remote-debugging/webviews/).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n",
+                  "text": "# Android Webview debugging enabled\nThe `WebView.setWebContentsDebuggingEnabled` method enables or disables the contents of any `WebView` in the application to be debugged.\n\nYou should only enable debugging features during development. When you create a production build, you should disable it. If you enable debugging features, this can make your code vulnerable by adding entry points, or leaking sensitive information.\n\n\n## Recommendation\nEnsure that debugging features are not enabled in production builds, such as by guarding calls to `WebView.setWebContentsDebuggingEnabled(true)` by a flag that is only enabled in debug builds.\n\n\n## Example\nIn the first (bad) example, WebView debugging is always enabled. whereas the GOOD case only enables it if the `android:debuggable` attribute is set to `true`.\n\n\n```java\n// BAD - debugging is always enabled \nWebView.setWebContentsDebuggingEnabled(true);\n\n// GOOD - debugging is only enabled when this is a debug build, as indicated by the debuggable flag being set.\nif (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {\n    WebView.setWebContentsDebuggingEnabled(true);\n}\n```\n\n## References\n* Android Developers: [setWebContentsDebuggingEnabled](https://developer.android.com/reference/android/webkit/WebView.html#setWebContentsDebuggingEnabled(boolean)).\n* Android Developers: [Remote debugging WebViews](https://developer.chrome.com/docs/devtools/remote-debugging/webviews/).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n"
+                },
+                "id": "java/android/webview-debugging-enabled",
+                "name": "java/android/webview-debugging-enabled",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-489/WebviewDebuggingEnabled.ql",
+                  "security-severity": "7.2",
+                  "tags": [
+                    "external/cwe/cwe-489",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android Webview debugging enabled"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Storing sensitive information in cleartext can expose it to an attacker."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information in cookie\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-315](https://cwe.mitre.org/data/definitions/315.html).\n",
+                  "text": "# Cleartext storage of sensitive information in cookie\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-315](https://cwe.mitre.org/data/definitions/315.html).\n"
+                },
+                "id": "java/cleartext-storage-in-cookie",
+                "name": "java/cleartext-storage-in-cookie",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageCookie.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "external/cwe/cwe-315",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information in cookie"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Storing sensitive information in cleartext can expose it to an attacker."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information using 'Properties' class\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-313](https://cwe.mitre.org/data/definitions/313.html).\n",
+                  "text": "# Cleartext storage of sensitive information using 'Properties' class\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-313](https://cwe.mitre.org/data/definitions/313.html).\n"
+                },
+                "id": "java/cleartext-storage-in-properties",
+                "name": "java/cleartext-storage-in-properties",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageProperties.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-313",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information using 'Properties' class"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using externally controlled strings in a command line is vulnerable to malicious changes in the strings."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled command line\nCode that passes user input directly to `Runtime.exec`, or some other library routine that executes a command, allows the user to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the command to run or library to load. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable libraries or commands cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nThe following example shows code that takes a shell script that can be changed maliciously by a user, and passes it straight to `Runtime.exec` without examining it first.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        String script = System.getenv(\"SCRIPTNAME\");\n        if (script != null) {\n            // BAD: The script to be executed is controlled by the user.\n            Runtime.getRuntime().exec(script);\n        }\n    }\n}\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n",
+                  "text": "# Uncontrolled command line\nCode that passes user input directly to `Runtime.exec`, or some other library routine that executes a command, allows the user to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the command to run or library to load. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable libraries or commands cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nThe following example shows code that takes a shell script that can be changed maliciously by a user, and passes it straight to `Runtime.exec` without examining it first.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        String script = System.getenv(\"SCRIPTNAME\");\n        if (script != null) {\n            // BAD: The script to be executed is controlled by the user.\n            Runtime.getRuntime().exec(script);\n        }\n    }\n}\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n"
+                },
+                "id": "java/command-line-injection",
+                "name": "java/command-line-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecTainted.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled command line"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Comparisons between types of different widths in a loop condition can cause the loop to behave unexpectedly."
+                },
+                "help": {
+                  "markdown": "# Comparison of narrow type with wide type in loop condition\nIn a loop condition, comparison of a value of a narrow type with a value of a wide type may always evaluate to `true` if the wider value is sufficiently large (or small). This is because the narrower value may overflow. This can lead to an infinite loop.\n\n\n## Recommendation\nChange the types of the compared values so that the value on the narrower side of the comparison is at least as wide as the value it is being compared with.\n\n\n## Example\nIn this example, `bytesReceived` is compared against `MAXGET` in a `while` loop. However, `bytesReceived` is a `short`, and `MAXGET` is a `long`. Because `MAXGET` is larger than `Short.MAX_VALUE`, the loop condition is always `true`, so the loop never terminates.\n\nThis problem is avoided in the 'GOOD' case because `bytesReceived2` is a `long`, which is as wide as the type of `MAXGET`.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t\n\t\t{\t\t\n\t\t\tint BIGNUM = Integer.MAX_VALUE;\n\t\t\tlong MAXGET = Short.MAX_VALUE + 1;\n\t\t\t\n\t\t\tchar[] buf = new char[BIGNUM];\n\n\t\t\tshort bytesReceived = 0;\n\t\t\t\n\t\t\t// BAD: 'bytesReceived' is compared with a value of wider type.\n\t\t\t// 'bytesReceived' overflows before reaching MAXGET,\n\t\t\t// causing an infinite loop.\n\t\t\twhile (bytesReceived < MAXGET) {\n\t\t\t\tbytesReceived += getFromInput(buf, bytesReceived);\n\t\t\t}\n\t\t}\n\t\t\n\t\t{\n\t\t\tlong bytesReceived2 = 0;\n\t\t\t\n\t\t\t// GOOD: 'bytesReceived2' has a type at least as wide as MAXGET.\n\t\t\twhile (bytesReceived2 < MAXGET) {\n\t\t\t\tbytesReceived2 += getFromInput(buf, bytesReceived2);\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tpublic static int getFromInput(char[] buf, short pos) {\n\t\t// write to buf\n\t\t// ...\n\t\treturn 1;\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n",
+                  "text": "# Comparison of narrow type with wide type in loop condition\nIn a loop condition, comparison of a value of a narrow type with a value of a wide type may always evaluate to `true` if the wider value is sufficiently large (or small). This is because the narrower value may overflow. This can lead to an infinite loop.\n\n\n## Recommendation\nChange the types of the compared values so that the value on the narrower side of the comparison is at least as wide as the value it is being compared with.\n\n\n## Example\nIn this example, `bytesReceived` is compared against `MAXGET` in a `while` loop. However, `bytesReceived` is a `short`, and `MAXGET` is a `long`. Because `MAXGET` is larger than `Short.MAX_VALUE`, the loop condition is always `true`, so the loop never terminates.\n\nThis problem is avoided in the 'GOOD' case because `bytesReceived2` is a `long`, which is as wide as the type of `MAXGET`.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t\n\t\t{\t\t\n\t\t\tint BIGNUM = Integer.MAX_VALUE;\n\t\t\tlong MAXGET = Short.MAX_VALUE + 1;\n\t\t\t\n\t\t\tchar[] buf = new char[BIGNUM];\n\n\t\t\tshort bytesReceived = 0;\n\t\t\t\n\t\t\t// BAD: 'bytesReceived' is compared with a value of wider type.\n\t\t\t// 'bytesReceived' overflows before reaching MAXGET,\n\t\t\t// causing an infinite loop.\n\t\t\twhile (bytesReceived < MAXGET) {\n\t\t\t\tbytesReceived += getFromInput(buf, bytesReceived);\n\t\t\t}\n\t\t}\n\t\t\n\t\t{\n\t\t\tlong bytesReceived2 = 0;\n\t\t\t\n\t\t\t// GOOD: 'bytesReceived2' has a type at least as wide as MAXGET.\n\t\t\twhile (bytesReceived2 < MAXGET) {\n\t\t\t\tbytesReceived2 += getFromInput(buf, bytesReceived2);\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tpublic static int getFromInput(char[] buf, short pos) {\n\t\t// write to buf\n\t\t// ...\n\t\treturn 1;\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n"
+                },
+                "id": "java/comparison-with-wider-type",
+                "name": "java/comparison-with-wider-type",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-197",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Comparison of narrow type with wide type in loop condition"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using concatenated strings in a command line is vulnerable to malicious insertion of special characters in the strings."
+                },
+                "help": {
+                  "markdown": "# Building a command line with string concatenation\nCode that builds a command line by concatenating strings that have been entered by a user allows the user to execute malicious code.\n\n\n## Recommendation\nExecute external commands using an array of strings rather than a single string. By using an array, many possible vulnerabilities in the formatting of the string are avoided.\n\n\n## Example\nIn the following example, `latlonCoords` contains a string that has been entered by a user but not validated by the program. This allows the user to, for example, append an ampersand (&) followed by the command for a malicious program to the end of the string. The ampersand instructs Windows to execute another program. In the block marked 'BAD', `latlonCoords` is passed to `exec` as part of a concatenated string, which allows more than one command to be executed. However, in the block marked 'GOOD', `latlonCoords` is passed as part of an array, which means that `exec` treats it only as an argument.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: user input might include special characters such as ampersands\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(\"cmd.exe /C latlon2utm.exe \" + latlonCoords);\n        }\n\n        // GOOD: use an array of arguments instead of executing a string\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(new String[] {\n                    \"c:\\\\path\\to\\latlon2utm.exe\",\n                    latlonCoords });\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n",
+                  "text": "# Building a command line with string concatenation\nCode that builds a command line by concatenating strings that have been entered by a user allows the user to execute malicious code.\n\n\n## Recommendation\nExecute external commands using an array of strings rather than a single string. By using an array, many possible vulnerabilities in the formatting of the string are avoided.\n\n\n## Example\nIn the following example, `latlonCoords` contains a string that has been entered by a user but not validated by the program. This allows the user to, for example, append an ampersand (&) followed by the command for a malicious program to the end of the string. The ampersand instructs Windows to execute another program. In the block marked 'BAD', `latlonCoords` is passed to `exec` as part of a concatenated string, which allows more than one command to be executed. However, in the block marked 'GOOD', `latlonCoords` is passed as part of an array, which means that `exec` treats it only as an argument.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: user input might include special characters such as ampersands\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(\"cmd.exe /C latlon2utm.exe \" + latlonCoords);\n        }\n\n        // GOOD: use an array of arguments instead of executing a string\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(new String[] {\n                    \"c:\\\\path\\to\\latlon2utm.exe\",\n                    latlonCoords });\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n"
+                },
+                "id": "java/concatenated-command-line",
+                "name": "java/concatenated-command-line",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecUnescaped.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Building a command line with string concatenation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building a SQL or Java Persistence query by concatenating a possibly-untrusted string is vulnerable to insertion of malicious code."
+                },
+                "help": {
+                  "markdown": "# Query built by concatenation with a possibly-untrusted string\nEven when the components of a SQL query are not fully controlled by a user, it is a vulnerability to build the query by directly concatenating those components. Perhaps a separate vulnerability will allow the user to gain control of the component. As well, a user who cannot gain full control of an input might influence it enough to cause the SQL query to fail to run.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating the result of `getCategory` with some string literals. The result of `getCategory` can include special characters, or it might be refactored later so that it may return something that contains special characters.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the result of `getCategory` are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = getCategory();\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = getCategory();\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n",
+                  "text": "# Query built by concatenation with a possibly-untrusted string\nEven when the components of a SQL query are not fully controlled by a user, it is a vulnerability to build the query by directly concatenating those components. Perhaps a separate vulnerability will allow the user to gain control of the component. As well, a user who cannot gain full control of an input might influence it enough to cause the SQL query to fail to run.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating the result of `getCategory` with some string literals. The result of `getCategory` can include special characters, or it might be refactored later so that it may return something that contains special characters.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the result of `getCategory` are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = getCategory();\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = getCategory();\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n"
+                },
+                "id": "java/concatenated-sql-query",
+                "name": "java/concatenated-sql-query",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-089/SqlConcatenated.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-089",
+                    "external/cwe/cwe-564",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Query built by concatenation with a possibly-untrusted string"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Information from an error message propagates to an external user. Error messages can unintentionally reveal implementation details that are useful to an attacker for developing a subsequent exploit."
+                },
+                "help": {
+                  "markdown": "# Information exposure through an error message\nThe error message at the top of a stack trace can include information such as server-side file names and SQL code that the application relies on, allowing an attacker to fine-tune a subsequent injection attack.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the error message entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `getMessage()` method. As such, the user is able to see a detailed error message, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a exception message back to the response\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\tex.getMessage());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the exception message, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex.getMessage);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n",
+                  "text": "# Information exposure through an error message\nThe error message at the top of a stack trace can include information such as server-side file names and SQL code that the application relies on, allowing an attacker to fine-tune a subsequent injection attack.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the error message entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `getMessage()` method. As such, the user is able to see a detailed error message, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a exception message back to the response\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\tex.getMessage());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the exception message, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex.getMessage);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n"
+                },
+                "id": "java/error-message-exposure",
+                "name": "java/error-message-exposure",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-209/SensitiveDataExposureThroughErrorMessage.ql",
+                  "security-severity": "5.4",
+                  "tags": [
+                    "external/cwe/cwe-209",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Information exposure through an error message"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Passing environment variables containing externally controlled strings to a command line is vulnerable to malicious changes to the environment of a subprocess."
+                },
+                "help": {
+                  "markdown": "# Building a command with an injected environment variable\nPassing unvalidated user input into the environment variables of a subprocess can allow an attacker to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the environment variable or its value. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable environment variables cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nIn the following (BAD) example, the environment variable `PATH` is set to the value of the user input `path` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String path = request.getParameter(\"path\");\n\n    Map env = processBuilder.environment();\n    // BAD: path is tainted and being added to the environment\n    env.put(\"PATH\", path);\n\n    processBuilder.start();\n}\n```\nIn the following (BAD) example, an environment variable is set with a name that is derived from the user input `var` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String attr = request.getParameter(\"attribute\");\n    String value = request.getParameter(\"value\");\n\n    Map env = processBuilder.environment();\n    // BAD: attr and value are tainted and being added to the environment\n    env.put(attr, value);\n\n    processBuilder.start();\n}\n```\nIn the following (GOOD) example, the user's input is validated before being used to set the environment variable.\n\n\n```java\nString opt = request.getParameter(\"opt\");\nString value = request.getParameter(\"value\");\n\nMap env = processBuilder.environment();\n\n// GOOD: opt and value are checked before being added to the environment\nif (permittedJavaOptions.contains(opt) && validOption(opt, value)) {\n    env.put(opt, value);\n}\n```\nIn the following (GOOD) example, the user's input is checked and used to determine an environment variable to add.\n\n\n```java\nMap env = builder.environment();\nString debug = request.getParameter(\"debug\");\n\n// GOOD: Checking the value and not tainting the variable added to the environment\nif (debug != null) {\n    env.put(\"PYTHONDEBUG\", \"1\");\n}\n\n```\n\n## References\n* The Java Tutorials: [Environment Variables](https://docs.oracle.com/javase/tutorial/essential/environment/env.html).\n* OWASP: [Command injection](https://owasp.org/www-community/attacks/Command_Injection).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n* Common Weakness Enumeration: [CWE-454](https://cwe.mitre.org/data/definitions/454.html).\n",
+                  "text": "# Building a command with an injected environment variable\nPassing unvalidated user input into the environment variables of a subprocess can allow an attacker to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the environment variable or its value. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable environment variables cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nIn the following (BAD) example, the environment variable `PATH` is set to the value of the user input `path` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String path = request.getParameter(\"path\");\n\n    Map env = processBuilder.environment();\n    // BAD: path is tainted and being added to the environment\n    env.put(\"PATH\", path);\n\n    processBuilder.start();\n}\n```\nIn the following (BAD) example, an environment variable is set with a name that is derived from the user input `var` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String attr = request.getParameter(\"attribute\");\n    String value = request.getParameter(\"value\");\n\n    Map env = processBuilder.environment();\n    // BAD: attr and value are tainted and being added to the environment\n    env.put(attr, value);\n\n    processBuilder.start();\n}\n```\nIn the following (GOOD) example, the user's input is validated before being used to set the environment variable.\n\n\n```java\nString opt = request.getParameter(\"opt\");\nString value = request.getParameter(\"value\");\n\nMap env = processBuilder.environment();\n\n// GOOD: opt and value are checked before being added to the environment\nif (permittedJavaOptions.contains(opt) && validOption(opt, value)) {\n    env.put(opt, value);\n}\n```\nIn the following (GOOD) example, the user's input is checked and used to determine an environment variable to add.\n\n\n```java\nMap env = builder.environment();\nString debug = request.getParameter(\"debug\");\n\n// GOOD: Checking the value and not tainting the variable added to the environment\nif (debug != null) {\n    env.put(\"PYTHONDEBUG\", \"1\");\n}\n\n```\n\n## References\n* The Java Tutorials: [Environment Variables](https://docs.oracle.com/javase/tutorial/essential/environment/env.html).\n* OWASP: [Command injection](https://owasp.org/www-community/attacks/Command_Injection).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n* Common Weakness Enumeration: [CWE-454](https://cwe.mitre.org/data/definitions/454.html).\n"
+                },
+                "id": "java/exec-tainted-environment",
+                "name": "java/exec-tainted-environment",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecTaintedEnvironment.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "external/cwe/cwe-454",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Building a command with an injected environment variable"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled Groovy script may lead to arbitrary code execution."
+                },
+                "help": {
+                  "markdown": "# Groovy Language injection\nApache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming. If a Groovy script is built using attacker-controlled data, and then evaluated, then it may allow the attacker to achieve RCE.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a Groovy evaluation. If this is not possible, use a sandbox solution. Developers must also take care that Groovy compile-time metaprogramming can also lead to RCE: it is possible to achieve RCE by compiling a Groovy script (see the article \"Abusing Meta Programming for Unauthenticated RCE!\" linked below). Groovy's `SecureASTCustomizer` allows securing source code by controlling what code constructs are permitted. This is typically done when using Groovy for its scripting or domain specific language (DSL) features. The fundamental problem is that Groovy is a dynamic language, yet `SecureASTCustomizer` works by looking at Groovy AST statically. This makes it very easy for an attacker to bypass many of the intended checks (see \\[Groovy SecureASTCustomizer is harmful\\](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/)). Therefore, besides `SecureASTCustomizer`, runtime checks are also necessary before calling Groovy methods (see \\[Improved sandboxing of Groovy scripts\\](https://melix.github.io/blog/2015/03/sandboxing.html)). It is also possible to use a block-list method, excluding unwanted classes from being loaded by the JVM. This method is not always recommended, because block-lists can be bypassed by unexpected values.\n\n\n## Example\nThe following example uses untrusted data to evaluate a Groovy script.\n\n\n```java\npublic class GroovyInjection {\n    void injectionViaClassLoader(HttpServletRequest request) {    \n        String script = request.getParameter(\"script\");\n        final GroovyClassLoader classLoader = new GroovyClassLoader();\n        Class groovy = classLoader.parseClass(script);\n        GroovyObject groovyObj = (GroovyObject) groovy.newInstance();\n    }\n\n    void injectionViaEval(HttpServletRequest request) {\n        String script = request.getParameter(\"script\");\n        Eval.me(script);\n    }\n\n    void injectionViaGroovyShell(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        shell.evaluate(script);\n    }\n\n    void injectionViaGroovyShellGroovyCodeSource(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        GroovyCodeSource gcs = new GroovyCodeSource(script, \"test\", \"Test\");\n        shell.evaluate(gcs);\n    }\n}\n\n\n```\nThe following example uses classloader block-list approach to exclude loading dangerous classes.\n\n\n```java\npublic class SandboxGroovyClassLoader extends ClassLoader {\n    public SandboxGroovyClassLoader(ClassLoader parent) {\n        super(parent);\n    }\n\n    /* override `loadClass` here to prevent loading sensitive classes, such as `java.lang.Runtime`, `java.lang.ProcessBuilder`, `java.lang.System`, etc.  */\n    /* Note we must also block `groovy.transform.ASTTest`, `groovy.lang.GrabConfig` and `org.buildobjects.process.ProcBuilder` to prevent compile-time RCE. */\n\n    static void runWithSandboxGroovyClassLoader() throws Exception {\n        // GOOD: route all class-loading via sand-boxing classloader.\n        SandboxGroovyClassLoader classLoader = new GroovyClassLoader(new SandboxGroovyClassLoader());\n        \n        Class scriptClass = classLoader.parseClass(untrusted.getQueryString());\n        Object scriptInstance = scriptClass.newInstance();\n        Object result = scriptClass.getDeclaredMethod(\"bar\", new Class[]{}).invoke(scriptInstance, new Object[]{});\n    }\n}\n```\n\n## References\n* Orange Tsai: [Abusing Meta Programming for Unauthenticated RCE!](https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html).\n* Cédric Champeau: [Improved sandboxing of Groovy scripts](https://melix.github.io/blog/2015/03/sandboxing.html).\n* Kohsuke Kawaguchi: [Groovy SecureASTCustomizer is harmful](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/).\n* Welk1n: [Groovy Injection payloads](https://github.com/welk1n/exploiting-groovy-in-Java/).\n* Charles Chan: [Secure Groovy Script Execution in a Sandbox](https://levelup.gitconnected.com/secure-groovy-script-execution-in-a-sandbox-ea39f80ee87/).\n* Eugene: [Scripting and sandboxing in a JVM environment](https://stringconcat.com/en/scripting-and-sandboxing/).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Groovy Language injection\nApache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming. If a Groovy script is built using attacker-controlled data, and then evaluated, then it may allow the attacker to achieve RCE.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a Groovy evaluation. If this is not possible, use a sandbox solution. Developers must also take care that Groovy compile-time metaprogramming can also lead to RCE: it is possible to achieve RCE by compiling a Groovy script (see the article \"Abusing Meta Programming for Unauthenticated RCE!\" linked below). Groovy's `SecureASTCustomizer` allows securing source code by controlling what code constructs are permitted. This is typically done when using Groovy for its scripting or domain specific language (DSL) features. The fundamental problem is that Groovy is a dynamic language, yet `SecureASTCustomizer` works by looking at Groovy AST statically. This makes it very easy for an attacker to bypass many of the intended checks (see \\[Groovy SecureASTCustomizer is harmful\\](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/)). Therefore, besides `SecureASTCustomizer`, runtime checks are also necessary before calling Groovy methods (see \\[Improved sandboxing of Groovy scripts\\](https://melix.github.io/blog/2015/03/sandboxing.html)). It is also possible to use a block-list method, excluding unwanted classes from being loaded by the JVM. This method is not always recommended, because block-lists can be bypassed by unexpected values.\n\n\n## Example\nThe following example uses untrusted data to evaluate a Groovy script.\n\n\n```java\npublic class GroovyInjection {\n    void injectionViaClassLoader(HttpServletRequest request) {    \n        String script = request.getParameter(\"script\");\n        final GroovyClassLoader classLoader = new GroovyClassLoader();\n        Class groovy = classLoader.parseClass(script);\n        GroovyObject groovyObj = (GroovyObject) groovy.newInstance();\n    }\n\n    void injectionViaEval(HttpServletRequest request) {\n        String script = request.getParameter(\"script\");\n        Eval.me(script);\n    }\n\n    void injectionViaGroovyShell(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        shell.evaluate(script);\n    }\n\n    void injectionViaGroovyShellGroovyCodeSource(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        GroovyCodeSource gcs = new GroovyCodeSource(script, \"test\", \"Test\");\n        shell.evaluate(gcs);\n    }\n}\n\n\n```\nThe following example uses classloader block-list approach to exclude loading dangerous classes.\n\n\n```java\npublic class SandboxGroovyClassLoader extends ClassLoader {\n    public SandboxGroovyClassLoader(ClassLoader parent) {\n        super(parent);\n    }\n\n    /* override `loadClass` here to prevent loading sensitive classes, such as `java.lang.Runtime`, `java.lang.ProcessBuilder`, `java.lang.System`, etc.  */\n    /* Note we must also block `groovy.transform.ASTTest`, `groovy.lang.GrabConfig` and `org.buildobjects.process.ProcBuilder` to prevent compile-time RCE. */\n\n    static void runWithSandboxGroovyClassLoader() throws Exception {\n        // GOOD: route all class-loading via sand-boxing classloader.\n        SandboxGroovyClassLoader classLoader = new GroovyClassLoader(new SandboxGroovyClassLoader());\n        \n        Class scriptClass = classLoader.parseClass(untrusted.getQueryString());\n        Object scriptInstance = scriptClass.newInstance();\n        Object result = scriptClass.getDeclaredMethod(\"bar\", new Class[]{}).invoke(scriptInstance, new Object[]{});\n    }\n}\n```\n\n## References\n* Orange Tsai: [Abusing Meta Programming for Unauthenticated RCE!](https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html).\n* Cédric Champeau: [Improved sandboxing of Groovy scripts](https://melix.github.io/blog/2015/03/sandboxing.html).\n* Kohsuke Kawaguchi: [Groovy SecureASTCustomizer is harmful](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/).\n* Welk1n: [Groovy Injection payloads](https://github.com/welk1n/exploiting-groovy-in-Java/).\n* Charles Chan: [Secure Groovy Script Execution in a Sandbox](https://levelup.gitconnected.com/secure-groovy-script-execution-in-a-sandbox-ea39f80ee87/).\n* Eugene: [Scripting and sandboxing in a JVM environment](https://stringconcat.com/en/scripting-and-sandboxing/).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/groovy-injection",
+                "name": "java/groovy-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/GroovyInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Groovy Language injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a hard-coded credential in a call to a sensitive Java API may compromise security."
+                },
+                "help": {
+                  "markdown": "# Hard-coded credential in API call\nIncluding unencrypted hard-coded authentication credentials in source code is dangerous because the credentials may be easily discovered. For example, the code may be open source, or it may be leaked or accidentally revealed, making the credentials visible to an attacker. This, in turn, might enable them to gain unauthorized access, or to obtain privileged information.\n\n\n## Recommendation\nRemove hard-coded credentials, such as user names, passwords and certificates, from source code. Instead, place them in configuration files, environment variables or other data stores if necessary. If possible, store configuration files including credential data separately from the source code, in a secure location with restricted access.\n\n\n## Example\nThe following code example connects to a database using a hard-coded user name and password:\n\n\n```java\nprivate static final String p = \"123456\"; // hard-coded credential\n\npublic static void main(String[] args) throws SQLException {\n    String url = \"jdbc:mysql://localhost/test\";\n    String u = \"admin\"; // hard-coded credential\n\n    getConn(url, u, p);\n}\n\npublic static void getConn(String url, String v, String q) throws SQLException {\n    DriverManager.getConnection(url, v, q); // sensitive call\n}\n\n```\nInstead, the user name and password could be supplied through environment variables, which can be set externally without hard-coding credentials in the source code.\n\n\n## References\n* OWASP: [Use of hard-coded password](https://www.owasp.org/index.php/Use_of_hard-coded_password).\n* Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n",
+                  "text": "# Hard-coded credential in API call\nIncluding unencrypted hard-coded authentication credentials in source code is dangerous because the credentials may be easily discovered. For example, the code may be open source, or it may be leaked or accidentally revealed, making the credentials visible to an attacker. This, in turn, might enable them to gain unauthorized access, or to obtain privileged information.\n\n\n## Recommendation\nRemove hard-coded credentials, such as user names, passwords and certificates, from source code. Instead, place them in configuration files, environment variables or other data stores if necessary. If possible, store configuration files including credential data separately from the source code, in a secure location with restricted access.\n\n\n## Example\nThe following code example connects to a database using a hard-coded user name and password:\n\n\n```java\nprivate static final String p = \"123456\"; // hard-coded credential\n\npublic static void main(String[] args) throws SQLException {\n    String url = \"jdbc:mysql://localhost/test\";\n    String u = \"admin\"; // hard-coded credential\n\n    getConn(url, u, p);\n}\n\npublic static void getConn(String url, String v, String q) throws SQLException {\n    DriverManager.getConnection(url, v, q); // sensitive call\n}\n\n```\nInstead, the user name and password could be supplied through environment variables, which can be set externally without hard-coding credentials in the source code.\n\n\n## References\n* OWASP: [Use of hard-coded password](https://www.owasp.org/index.php/Use_of_hard-coded_password).\n* Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n"
+                },
+                "id": "java/hardcoded-credential-api-call",
+                "name": "java/hardcoded-credential-api-call",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-798",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Hard-coded credential in API call"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Writing user input directly to an HTTP header makes code vulnerable to attack by header splitting."
+                },
+                "help": {
+                  "markdown": "# HTTP response splitting\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n",
+                  "text": "# HTTP response splitting\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n"
+                },
+                "id": "java/http-response-splitting",
+                "name": "java/http-response-splitting",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-113/ResponseSplitting.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-113",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "HTTP response splitting"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Compound assignment statements (for example 'intvar += longvar') that implicitly cast a value of a wider type to a narrower type may result in information loss and numeric errors such as overflows."
+                },
+                "help": {
+                  "markdown": "# Implicit narrowing conversion in compound assignment\nCompound assignment statements of the form `x += y` or `x *= y` perform an implicit narrowing conversion if the type of `x` is narrower than the type of `y`. For example, `x += y` is equivalent to `x = (T)(x + y)`, where `T` is the type of `x`. This can result in information loss and numeric errors such as overflows.\n\n\n## Recommendation\nEnsure that the type of the left-hand side of the compound assignment statement is at least as wide as the type of the right-hand side.\n\n\n## Example\nIf `x` is of type `short` and `y` is of type `int`, the expression `x + y` is of type `int`. However, the expression `x += y` is equivalent to `x = (short) (x + y)`. The expression `x + y` is cast to the type of the left-hand side of the assignment: `short`, possibly leading to information loss.\n\nTo avoid implicitly narrowing the type of `x + y`, change the type of `x` to `int`. Then the types of `x` and `x + y` are both `int` and there is no need for an implicit cast.\n\n\n## References\n* J. Bloch and N. Gafter, *Java Puzzlers: Traps, Pitfalls, and Corner Cases*, Puzzle 9. Addison-Wesley, 2005.\n* Java Language Specification: [Compound Assignment Operators](https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.26.2), [Narrowing Primitive Conversion](https://docs.oracle.com/javase/specs/jls/se11/html/jls-5.html#jls-5.1.3).\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-192](https://cwe.mitre.org/data/definitions/192.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n",
+                  "text": "# Implicit narrowing conversion in compound assignment\nCompound assignment statements of the form `x += y` or `x *= y` perform an implicit narrowing conversion if the type of `x` is narrower than the type of `y`. For example, `x += y` is equivalent to `x = (T)(x + y)`, where `T` is the type of `x`. This can result in information loss and numeric errors such as overflows.\n\n\n## Recommendation\nEnsure that the type of the left-hand side of the compound assignment statement is at least as wide as the type of the right-hand side.\n\n\n## Example\nIf `x` is of type `short` and `y` is of type `int`, the expression `x + y` is of type `int`. However, the expression `x += y` is equivalent to `x = (short) (x + y)`. The expression `x + y` is cast to the type of the left-hand side of the assignment: `short`, possibly leading to information loss.\n\nTo avoid implicitly narrowing the type of `x + y`, change the type of `x` to `int`. Then the types of `x` and `x + y` are both `int` and there is no need for an implicit cast.\n\n\n## References\n* J. Bloch and N. Gafter, *Java Puzzlers: Traps, Pitfalls, and Corner Cases*, Puzzle 9. Addison-Wesley, 2005.\n* Java Language Specification: [Compound Assignment Operators](https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.26.2), [Narrowing Primitive Conversion](https://docs.oracle.com/javase/specs/jls/se11/html/jls-5.html#jls-5.1.3).\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-192](https://cwe.mitre.org/data/definitions/192.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n"
+                },
+                "id": "java/implicit-cast-in-compound-assignment",
+                "name": "java/implicit-cast-in-compound-assignment",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Likely%20Bugs/Arithmetic/InformationLoss.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-192",
+                    "external/cwe/cwe-197",
+                    "external/cwe/cwe-681",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Implicit narrowing conversion in compound assignment"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A broadcast receiver that does not verify intents it receives may be susceptible to unintended behavior by third party applications sending it explicit intents."
+                },
+                "help": {
+                  "markdown": "# Improper verification of intent by broadcast receiver\nWhen an Android application uses a `BroadcastReceiver` to receive intents, it is also able to receive explicit intents that are sent directly to it, regardless of its filter. Certain intent actions are only able to be sent by the operating system, not third-party applications. However, a `BroadcastReceiver` that is registered to receive system intents is still able to receive intents from a third-party application, so it should check that the intent received has the expected action. Otherwise, a third-party application could impersonate the system this way to cause unintended behavior, such as a denial of service.\n\n\n## Example\nIn the following code, the `ShutdownReceiver` initiates a shutdown procedure upon receiving an intent, without checking that the received action is indeed `ACTION_SHUTDOWN`. This allows third-party applications to send explicit intents to this receiver to cause a denial of service.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n```xml\n\n    \n        \n            \n                \n            \n        \n    \n\n```\n\n## Recommendation\nIn the `onReceive` method of a `BroadcastReceiver`, the action of the received Intent should be checked. The following code demonstrates this.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) {\n            return;\n        }\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-925](https://cwe.mitre.org/data/definitions/925.html).\n",
+                  "text": "# Improper verification of intent by broadcast receiver\nWhen an Android application uses a `BroadcastReceiver` to receive intents, it is also able to receive explicit intents that are sent directly to it, regardless of its filter. Certain intent actions are only able to be sent by the operating system, not third-party applications. However, a `BroadcastReceiver` that is registered to receive system intents is still able to receive intents from a third-party application, so it should check that the intent received has the expected action. Otherwise, a third-party application could impersonate the system this way to cause unintended behavior, such as a denial of service.\n\n\n## Example\nIn the following code, the `ShutdownReceiver` initiates a shutdown procedure upon receiving an intent, without checking that the received action is indeed `ACTION_SHUTDOWN`. This allows third-party applications to send explicit intents to this receiver to cause a denial of service.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n```xml\n\n    \n        \n            \n                \n            \n        \n    \n\n```\n\n## Recommendation\nIn the `onReceive` method of a `BroadcastReceiver`, the action of the received Intent should be checked. The following code demonstrates this.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) {\n            return;\n        }\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-925](https://cwe.mitre.org/data/definitions/925.html).\n"
+                },
+                "id": "java/improper-intent-verification",
+                "name": "java/improper-intent-verification",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-925",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Improper verification of intent by broadcast receiver"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using unvalidated external input as the argument to a construction of an array can lead to index out of bound exceptions."
+                },
+                "help": {
+                  "markdown": "# Improper validation of user-provided size used for array construction\nUsing unvalidated input when specifying the size of a newly created array can result in the creation of an array with size zero. If this array is subsequently accessed without further checks, an `ArrayIndexOutOfBoundsException` may be thrown, because there is no guarantee that the array is not empty.\n\nThis problem occurs when user input is used as the size during array initialization, either directly or following one or more calculations. If the user input is unvalidated, it may cause the size of the array to be zero.\n\n\n## Recommendation\nThe size used in the array initialization should be verified to be greater than zero before being used. Alternatively, the array access may be protected by a conditional check that ensures it is only accessed if the index is less than the array size.\n\n\n## Example\nThe following program constructs an array with the size specified by some user input:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    try {\n      // User provided value\n      int numberOfItems = Integer.parseInt(request.getParameter(\"numberOfItems\").trim());\n\n      if (numberOfItems >= 0) {\n        /*\n         * BAD numberOfItems may be zero, which would cause the array indexing operation to\n         * throw an ArrayIndexOutOfBoundsException\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n      if (numberOfItems > 0) {\n        /*\n         * GOOD numberOfItems must be greater than zero, so the indexing succeeds.\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first array construction is protected by a condition that checks if the user input is zero or more. However, if the user provides `0` as the `numberOfItems` parameter, then an empty array is created, and any array access would fail with an `ArrayIndexOutOfBoundsException`.\n\nThe second array construction is protected by a condition that checks if the user input is greater than zero. The array will therefore never be empty, and the following array access will not throw an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n",
+                  "text": "# Improper validation of user-provided size used for array construction\nUsing unvalidated input when specifying the size of a newly created array can result in the creation of an array with size zero. If this array is subsequently accessed without further checks, an `ArrayIndexOutOfBoundsException` may be thrown, because there is no guarantee that the array is not empty.\n\nThis problem occurs when user input is used as the size during array initialization, either directly or following one or more calculations. If the user input is unvalidated, it may cause the size of the array to be zero.\n\n\n## Recommendation\nThe size used in the array initialization should be verified to be greater than zero before being used. Alternatively, the array access may be protected by a conditional check that ensures it is only accessed if the index is less than the array size.\n\n\n## Example\nThe following program constructs an array with the size specified by some user input:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    try {\n      // User provided value\n      int numberOfItems = Integer.parseInt(request.getParameter(\"numberOfItems\").trim());\n\n      if (numberOfItems >= 0) {\n        /*\n         * BAD numberOfItems may be zero, which would cause the array indexing operation to\n         * throw an ArrayIndexOutOfBoundsException\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n      if (numberOfItems > 0) {\n        /*\n         * GOOD numberOfItems must be greater than zero, so the indexing succeeds.\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first array construction is protected by a condition that checks if the user input is zero or more. However, if the user provides `0` as the `numberOfItems` parameter, then an empty array is created, and any array access would fail with an `ArrayIndexOutOfBoundsException`.\n\nThe second array construction is protected by a condition that checks if the user input is greater than zero. The array will therefore never be empty, and the following array access will not throw an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n"
+                },
+                "id": "java/improper-validation-of-array-construction",
+                "name": "java/improper-validation-of-array-construction",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayConstruction.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-129",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Improper validation of user-provided size used for array construction"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using external input as an index to an array, without proper validation, can lead to index out of bound exceptions."
+                },
+                "help": {
+                  "markdown": "# Improper validation of user-provided array index\nUsing unvalidated input as part of an index into the array can cause the array access to throw an `ArrayIndexOutOfBoundsException`. This is because there is no guarantee that the index provided is within the bounds of the array.\n\nThis problem occurs when user input is used as an array index, either directly or following one or more calculations. If the user input is unsanitized, it may be any value, which could result in either a negative index, or an index which is larger than the size of the array, either of which would result in an `ArrayIndexOutOfBoundsException`.\n\n\n## Recommendation\nThe index used in the array access should be checked against the bounds of the array before being used. The index should be smaller than the array size, and it should not be negative.\n\n\n## Example\nThe following program accesses an element from a fixed size constant array:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    String[] productDescriptions = new String[] { \"Chocolate bar\", \"Fizzy drink\" };\n\n    // User provided value\n    String productID = request.getParameter(\"productID\");\n    try {\n        int productID = Integer.parseInt(userProperty.trim());\n\n        /*\n         * BAD Array is accessed without checking if the user provided value is out of\n         * bounds.\n         */\n        String productDescription = productDescriptions[productID];\n\n        if (productID >= 0 && productID < productDescriptions.length) {\n          // GOOD We have checked that the array index is valid first\n          productDescription = productDescriptions[productID];\n        } else {\n          productDescription = \"No product for that ID\";\n        }\n\n        response.getWriter().write(productDescription);\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first access of the `productDescriptions` array uses the user-provided value as the index without performing any checks. If the user provides a negative value, or a value larger than the size of the array, then an `ArrayIndexOutOfBoundsException` may be thrown.\n\nThe second access of the `productDescriptions` array is contained within a conditional expression that verifies the user-provided value is a valid index into the array. This ensures that the access operation never throws an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n",
+                  "text": "# Improper validation of user-provided array index\nUsing unvalidated input as part of an index into the array can cause the array access to throw an `ArrayIndexOutOfBoundsException`. This is because there is no guarantee that the index provided is within the bounds of the array.\n\nThis problem occurs when user input is used as an array index, either directly or following one or more calculations. If the user input is unsanitized, it may be any value, which could result in either a negative index, or an index which is larger than the size of the array, either of which would result in an `ArrayIndexOutOfBoundsException`.\n\n\n## Recommendation\nThe index used in the array access should be checked against the bounds of the array before being used. The index should be smaller than the array size, and it should not be negative.\n\n\n## Example\nThe following program accesses an element from a fixed size constant array:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    String[] productDescriptions = new String[] { \"Chocolate bar\", \"Fizzy drink\" };\n\n    // User provided value\n    String productID = request.getParameter(\"productID\");\n    try {\n        int productID = Integer.parseInt(userProperty.trim());\n\n        /*\n         * BAD Array is accessed without checking if the user provided value is out of\n         * bounds.\n         */\n        String productDescription = productDescriptions[productID];\n\n        if (productID >= 0 && productID < productDescriptions.length) {\n          // GOOD We have checked that the array index is valid first\n          productDescription = productDescriptions[productID];\n        } else {\n          productDescription = \"No product for that ID\";\n        }\n\n        response.getWriter().write(productDescription);\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first access of the `productDescriptions` array uses the user-provided value as the index without performing any checks. If the user provides a negative value, or a value larger than the size of the array, then an `ArrayIndexOutOfBoundsException` may be thrown.\n\nThe second access of the `productDescriptions` array is contained within a conditional expression that verifies the user-provided value is a valid index into the array. This ensures that the access operation never throws an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n"
+                },
+                "id": "java/improper-validation-of-array-index",
+                "name": "java/improper-validation-of-array-index",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayIndex.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-129",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Improper validation of user-provided array index"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Trusting all certificates allows an attacker to perform a machine-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# Android `WebView` that accepts all certificates\nIf the `onReceivedSslError` method of an Android `WebViewClient` always calls `proceed` on the given `SslErrorHandler`, it trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable application connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable application calls the `onReceivedSslError` method to check whether it should trust the certificate.\n1. The `onReceivedSslError` method of your `WebViewClient` calls `SslErrorHandler.proceed`.\n1. The vulnerable application accepts the certificate and proceeds with the connection since your `WevViewClient` trusted it by proceeding.\n1. The attacker can now read the data your application sends to `https://example.com` and/or alter its replies while the application thinks the connection is secure.\n\n## Recommendation\nDo not use a call `SslerrorHandler.proceed` unconditionally. If you have to use a self-signed certificate, only accept that certificate, not all certificates.\n\n\n## Example\nIn the first (bad) example, the `WebViewClient` trusts all certificates by always calling `SslErrorHandler.proceed`. In the second (good) example, only certificates signed by a certain public key are accepted.\n\n\n```java\nclass Bad extends WebViewClient {\n    // BAD: All certificates are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        handler.proceed(); \n    }\n}\n\nclass Good extends WebViewClient {\n    PublicKey myPubKey = ...;\n\n    // GOOD: Only certificates signed by a certain public key are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        try {\n            X509Certificate cert = error.getCertificate().getX509Certificate();\n            cert.verify(this.myPubKey);\n            handler.proceed();\n        }\n        catch (CertificateException|NoSuchAlgorithmException|InvalidKeyException|NoSuchProviderException|SignatureException e) {\n            handler.cancel();\n        }\n    }    \n}\n```\n\n## References\n* [WebViewClient.onReceivedSslError documentation](https://developer.android.com/reference/android/webkit/WebViewClient?hl=en#onReceivedSslError(android.webkit.WebView,%20android.webkit.SslErrorHandler,%20android.net.http.SslError)).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n",
+                  "text": "# Android `WebView` that accepts all certificates\nIf the `onReceivedSslError` method of an Android `WebViewClient` always calls `proceed` on the given `SslErrorHandler`, it trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable application connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable application calls the `onReceivedSslError` method to check whether it should trust the certificate.\n1. The `onReceivedSslError` method of your `WebViewClient` calls `SslErrorHandler.proceed`.\n1. The vulnerable application accepts the certificate and proceeds with the connection since your `WevViewClient` trusted it by proceeding.\n1. The attacker can now read the data your application sends to `https://example.com` and/or alter its replies while the application thinks the connection is secure.\n\n## Recommendation\nDo not use a call `SslerrorHandler.proceed` unconditionally. If you have to use a self-signed certificate, only accept that certificate, not all certificates.\n\n\n## Example\nIn the first (bad) example, the `WebViewClient` trusts all certificates by always calling `SslErrorHandler.proceed`. In the second (good) example, only certificates signed by a certain public key are accepted.\n\n\n```java\nclass Bad extends WebViewClient {\n    // BAD: All certificates are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        handler.proceed(); \n    }\n}\n\nclass Good extends WebViewClient {\n    PublicKey myPubKey = ...;\n\n    // GOOD: Only certificates signed by a certain public key are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        try {\n            X509Certificate cert = error.getCertificate().getX509Certificate();\n            cert.verify(this.myPubKey);\n            handler.proceed();\n        }\n        catch (CertificateException|NoSuchAlgorithmException|InvalidKeyException|NoSuchProviderException|SignatureException e) {\n            handler.cancel();\n        }\n    }    \n}\n```\n\n## References\n* [WebViewClient.onReceivedSslError documentation](https://developer.android.com/reference/android/webkit/WebViewClient?hl=en#onReceivedSslError(android.webkit.WebView,%20android.webkit.SslErrorHandler,%20android.net.http.SslError)).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n"
+                },
+                "id": "java/improper-webview-certificate-validation",
+                "name": "java/improper-webview-certificate-validation",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-295",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android `WebView` that accepts all certificates"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Basic authentication only obfuscates username/password in Base64 encoding, which can be easily recognized and reversed. Transmitting sensitive information without using HTTPS makes the data vulnerable to packet sniffing."
+                },
+                "help": {
+                  "markdown": "# Insecure basic authentication\nBasic authentication only obfuscates usernames and passwords in Base64 encoding, which can be easily recognized and reversed, thus it must not be transmitted over the cleartext HTTP channel. Transmitting sensitive information without using HTTPS makes the data vulnerable to packet sniffing.\n\n\n## Recommendation\nEither use a more secure authentication mechanism like digest authentication or federated authentication, or use the HTTPS communication protocol.\n\n\n## Example\nThe following example shows two ways of using basic authentication. In the 'BAD' case, the credentials are transmitted over HTTP. In the 'GOOD' case, the credentials are transmitted over HTTPS.\n\n\n```java\npublic class InsecureBasicAuth {\n  /**\n   * Test basic authentication with Apache HTTP request.\n   */\n  public void testApacheHttpRequest(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String url = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    url = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    HttpPost post = new HttpPost(url);\n    post.setHeader(\"Accept\", \"application/json\");\n    post.setHeader(\"Content-type\", \"application/json\");\n\n    String authString = username + \":\" + password;\n    byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());\n    String authStringEnc = new String(authEncBytes);\n\n    post.addHeader(\"Authorization\", \"Basic \" + authStringEnc);\n  }\n\n  /**\n   * Test basic authentication with Java HTTP URL connection.\n   */\n  public void testHttpUrlConnection(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String urlStr = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    urlStr = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    String authString = username + \":\" + password;\n    String encoding = Base64.getEncoder().encodeToString(authString.getBytes(\"UTF-8\"));\n    URL url = new URL(urlStr);\n    HttpURLConnection conn = (HttpURLConnection) url.openConnection();\n    conn.setRequestMethod(\"POST\");\n    conn.setDoOutput(true);\n    conn.setRequestProperty(\"Authorization\", \"Basic \" + encoding);\n  }\n}\n\n```\n\n## References\n* SonarSource rule: [Basic authentication should not be used](https://rules.sonarsource.com/java/tag/owasp/RSPEC-2647).\n* Acunetix: [WEB VULNERABILITIES INDEX - Basic authentication over HTTP](https://www.acunetix.com/vulnerabilities/web/basic-authentication-over-http/).\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n",
+                  "text": "# Insecure basic authentication\nBasic authentication only obfuscates usernames and passwords in Base64 encoding, which can be easily recognized and reversed, thus it must not be transmitted over the cleartext HTTP channel. Transmitting sensitive information without using HTTPS makes the data vulnerable to packet sniffing.\n\n\n## Recommendation\nEither use a more secure authentication mechanism like digest authentication or federated authentication, or use the HTTPS communication protocol.\n\n\n## Example\nThe following example shows two ways of using basic authentication. In the 'BAD' case, the credentials are transmitted over HTTP. In the 'GOOD' case, the credentials are transmitted over HTTPS.\n\n\n```java\npublic class InsecureBasicAuth {\n  /**\n   * Test basic authentication with Apache HTTP request.\n   */\n  public void testApacheHttpRequest(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String url = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    url = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    HttpPost post = new HttpPost(url);\n    post.setHeader(\"Accept\", \"application/json\");\n    post.setHeader(\"Content-type\", \"application/json\");\n\n    String authString = username + \":\" + password;\n    byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());\n    String authStringEnc = new String(authEncBytes);\n\n    post.addHeader(\"Authorization\", \"Basic \" + authStringEnc);\n  }\n\n  /**\n   * Test basic authentication with Java HTTP URL connection.\n   */\n  public void testHttpUrlConnection(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String urlStr = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    urlStr = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    String authString = username + \":\" + password;\n    String encoding = Base64.getEncoder().encodeToString(authString.getBytes(\"UTF-8\"));\n    URL url = new URL(urlStr);\n    HttpURLConnection conn = (HttpURLConnection) url.openConnection();\n    conn.setRequestMethod(\"POST\");\n    conn.setDoOutput(true);\n    conn.setRequestProperty(\"Authorization\", \"Basic \" + encoding);\n  }\n}\n\n```\n\n## References\n* SonarSource rule: [Basic authentication should not be used](https://rules.sonarsource.com/java/tag/owasp/RSPEC-2647).\n* Acunetix: [WEB VULNERABILITIES INDEX - Basic authentication over HTTP](https://www.acunetix.com/vulnerabilities/web/basic-authentication-over-http/).\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n"
+                },
+                "id": "java/insecure-basic-auth",
+                "name": "java/insecure-basic-auth",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-522/InsecureBasicAuth.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-319",
+                    "external/cwe/cwe-522",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure basic authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "User-controlled data may be evaluated as a Java EL expression, leading to arbitrary code execution."
+                },
+                "help": {
+                  "markdown": "# Insecure Bean Validation\nCustom error messages for constraint validators support different types of interpolation, including [Java EL expressions](https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-message-interpolation.html#section-interpolation-with-message-expressions). Controlling part of the message template being passed to `ConstraintValidatorContext.buildConstraintViolationWithTemplate()` argument can lead to arbitrary Java code execution. Unfortunately, it is common that validated (and therefore, normally untrusted) bean properties flow into the custom error message.\n\n\n## Recommendation\nThere are different approaches to remediate the issue:\n\n* Do not include validated bean properties in the custom error message.\n* Use parameterized messages instead of string concatenation. For example:\n```\nHibernateConstraintValidatorContext context =\n   constraintValidatorContext.unwrap(HibernateConstraintValidatorContext.class);\ncontext.addMessageParameter(\"foo\", \"bar\");\ncontext.buildConstraintViolationWithTemplate(\"My violation message contains a parameter {foo}\")\n   .addConstraintViolation();\n```\n* Sanitize the validated bean properties to make sure that there are no EL expressions. An example of valid sanitization logic can be found [here](https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/engine/messageinterpolation/util/InterpolationHelper.java#L17).\n* Disable the EL interpolation and only use `ParameterMessageInterpolator`:\n```\nValidator validator = Validation.byDefaultProvider()\n   .configure()\n   .messageInterpolator(new ParameterMessageInterpolator())\n   .buildValidatorFactory()\n   .getValidator();\n```\n* Replace Hibernate Validator with Apache BVal, which in its latest version does not interpolate EL expressions by default. Note that this replacement may not be a simple drop-in replacement.\n\n## Example\nThe following validator could result in arbitrary Java code execution:\n\n\n```java\nimport javax.validation.ConstraintValidator;\nimport javax.validation.ConstraintValidatorContext;\nimport org.hibernate.validator.constraintvalidation.HibernateConstraintValidatorContext;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class TestValidator implements ConstraintValidator {\n\n    public static class InterpolationHelper {\n\n        public static final char BEGIN_TERM = '{';\n        public static final char END_TERM = '}';\n        public static final char EL_DESIGNATOR = '$';\n        public static final char ESCAPE_CHARACTER = '\\\\';\n\n        private static final Pattern ESCAPE_MESSAGE_PARAMETER_PATTERN = Pattern.compile( \"([\\\\\" + ESCAPE_CHARACTER + BEGIN_TERM + END_TERM + EL_DESIGNATOR + \"])\" );\n\n        private InterpolationHelper() {\n        }\n\n        public static String escapeMessageParameter(String messageParameter) {\n            if ( messageParameter == null ) {\n                return null;\n            }\n            return ESCAPE_MESSAGE_PARAMETER_PATTERN.matcher( messageParameter ).replaceAll( Matcher.quoteReplacement( String.valueOf( ESCAPE_CHARACTER ) ) + \"$1\" );\n        }\n\n    }\n\n    @Override\n    public boolean isValid(String object, ConstraintValidatorContext constraintContext) {\n        String value = object + \" is invalid\";\n\n        // Bad: Bean properties (normally user-controlled) are passed directly to `buildConstraintViolationWithTemplate`\n        constraintContext.buildConstraintViolationWithTemplate(value).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are escaped \n        String escaped = InterpolationHelper.escapeMessageParameter(value);\n        constraintContext.buildConstraintViolationWithTemplate(escaped).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are parameterized\n        HibernateConstraintValidatorContext context = constraintContext.unwrap( HibernateConstraintValidatorContext.class );\n        context.addMessageParameter( \"prop\", object );\n        context.buildConstraintViolationWithTemplate( \"{prop} is invalid\").addConstraintViolation();\n        return false;\n    }\n\n}\n\n```\n\n## References\n* Hibernate Reference Guide: [ConstraintValidatorContext](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#_the_code_constraintvalidatorcontext_code).\n* GitHub Security Lab research: [Bean validation](https://securitylab.github.com/research/bean-validation-RCE).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Insecure Bean Validation\nCustom error messages for constraint validators support different types of interpolation, including [Java EL expressions](https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-message-interpolation.html#section-interpolation-with-message-expressions). Controlling part of the message template being passed to `ConstraintValidatorContext.buildConstraintViolationWithTemplate()` argument can lead to arbitrary Java code execution. Unfortunately, it is common that validated (and therefore, normally untrusted) bean properties flow into the custom error message.\n\n\n## Recommendation\nThere are different approaches to remediate the issue:\n\n* Do not include validated bean properties in the custom error message.\n* Use parameterized messages instead of string concatenation. For example:\n```\nHibernateConstraintValidatorContext context =\n   constraintValidatorContext.unwrap(HibernateConstraintValidatorContext.class);\ncontext.addMessageParameter(\"foo\", \"bar\");\ncontext.buildConstraintViolationWithTemplate(\"My violation message contains a parameter {foo}\")\n   .addConstraintViolation();\n```\n* Sanitize the validated bean properties to make sure that there are no EL expressions. An example of valid sanitization logic can be found [here](https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/engine/messageinterpolation/util/InterpolationHelper.java#L17).\n* Disable the EL interpolation and only use `ParameterMessageInterpolator`:\n```\nValidator validator = Validation.byDefaultProvider()\n   .configure()\n   .messageInterpolator(new ParameterMessageInterpolator())\n   .buildValidatorFactory()\n   .getValidator();\n```\n* Replace Hibernate Validator with Apache BVal, which in its latest version does not interpolate EL expressions by default. Note that this replacement may not be a simple drop-in replacement.\n\n## Example\nThe following validator could result in arbitrary Java code execution:\n\n\n```java\nimport javax.validation.ConstraintValidator;\nimport javax.validation.ConstraintValidatorContext;\nimport org.hibernate.validator.constraintvalidation.HibernateConstraintValidatorContext;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class TestValidator implements ConstraintValidator {\n\n    public static class InterpolationHelper {\n\n        public static final char BEGIN_TERM = '{';\n        public static final char END_TERM = '}';\n        public static final char EL_DESIGNATOR = '$';\n        public static final char ESCAPE_CHARACTER = '\\\\';\n\n        private static final Pattern ESCAPE_MESSAGE_PARAMETER_PATTERN = Pattern.compile( \"([\\\\\" + ESCAPE_CHARACTER + BEGIN_TERM + END_TERM + EL_DESIGNATOR + \"])\" );\n\n        private InterpolationHelper() {\n        }\n\n        public static String escapeMessageParameter(String messageParameter) {\n            if ( messageParameter == null ) {\n                return null;\n            }\n            return ESCAPE_MESSAGE_PARAMETER_PATTERN.matcher( messageParameter ).replaceAll( Matcher.quoteReplacement( String.valueOf( ESCAPE_CHARACTER ) ) + \"$1\" );\n        }\n\n    }\n\n    @Override\n    public boolean isValid(String object, ConstraintValidatorContext constraintContext) {\n        String value = object + \" is invalid\";\n\n        // Bad: Bean properties (normally user-controlled) are passed directly to `buildConstraintViolationWithTemplate`\n        constraintContext.buildConstraintViolationWithTemplate(value).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are escaped \n        String escaped = InterpolationHelper.escapeMessageParameter(value);\n        constraintContext.buildConstraintViolationWithTemplate(escaped).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are parameterized\n        HibernateConstraintValidatorContext context = constraintContext.unwrap( HibernateConstraintValidatorContext.class );\n        context.addMessageParameter( \"prop\", object );\n        context.buildConstraintViolationWithTemplate( \"{prop} is invalid\").addConstraintViolation();\n        return false;\n    }\n\n}\n\n```\n\n## References\n* Hibernate Reference Guide: [ConstraintValidatorContext](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#_the_code_constraintvalidatorcontext_code).\n* GitHub Security Lab research: [Bean validation](https://securitylab.github.com/research/bean-validation-RCE).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/insecure-bean-validation",
+                "name": "java/insecure-bean-validation",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure Bean Validation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Insecure cookies may be sent in cleartext, which makes them vulnerable to interception."
+                },
+                "help": {
+                  "markdown": "# Failure to use secure cookies\nFailing to set the 'secure' flag on a cookie can cause it to be sent in cleartext. This makes it easier for an attacker to intercept.\n\n\n## Recommendation\nAlways use `setSecure` to set the 'secure' flag on a cookie before adding it to an `HttpServletResponse`.\n\n\n## Example\nThis example shows two ways of adding a cookie to an `HttpServletResponse`. The first way leaves out the setting of the 'secure' flag; the second way includes the setting of the flag.\n\n\n```java\npublic static void test(HttpServletRequest request, HttpServletResponse response) {\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// BAD: 'secure' flag not set\n\t\tresponse.addCookie(cookie);\n\t}\n\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// GOOD: set 'secure' flag\n\t\tcookie.setSecure(true);\n\t\tresponse.addCookie(cookie);\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* Java Platform, Enterprise Edition (Java EE) 7, API Specification: [Class Cookie](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html).\n* Common Weakness Enumeration: [CWE-614](https://cwe.mitre.org/data/definitions/614.html).\n",
+                  "text": "# Failure to use secure cookies\nFailing to set the 'secure' flag on a cookie can cause it to be sent in cleartext. This makes it easier for an attacker to intercept.\n\n\n## Recommendation\nAlways use `setSecure` to set the 'secure' flag on a cookie before adding it to an `HttpServletResponse`.\n\n\n## Example\nThis example shows two ways of adding a cookie to an `HttpServletResponse`. The first way leaves out the setting of the 'secure' flag; the second way includes the setting of the flag.\n\n\n```java\npublic static void test(HttpServletRequest request, HttpServletResponse response) {\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// BAD: 'secure' flag not set\n\t\tresponse.addCookie(cookie);\n\t}\n\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// GOOD: set 'secure' flag\n\t\tcookie.setSecure(true);\n\t\tresponse.addCookie(cookie);\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* Java Platform, Enterprise Edition (Java EE) 7, API Specification: [Class Cookie](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html).\n* Common Weakness Enumeration: [CWE-614](https://cwe.mitre.org/data/definitions/614.html).\n"
+                },
+                "id": "java/insecure-cookie",
+                "name": "java/insecure-cookie",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-614/InsecureCookie.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "external/cwe/cwe-614",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Failure to use secure cookies"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "LDAP authentication with credentials sent in cleartext makes sensitive information vulnerable to remote attackers"
+                },
+                "help": {
+                  "markdown": "# Insecure LDAP authentication\nWhen using the Java LDAP API to perform LDAPv3-style extended operations and controls, a context with connection properties including user credentials is started. Transmission of LDAP credentials in cleartext allows remote attackers to obtain sensitive information by sniffing the network.\n\n\n## Recommendation\nUse the `ldaps://` protocol to send credentials through SSL or use SASL authentication.\n\n\n## Example\nIn the following (bad) example, a `ldap://` URL is used and credentials will be sent in plaintext.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldaps://` URL is used so credentials will be encrypted with SSL.\n\n\n```java\nString ldapUrl = \"ldaps://ad.your-server.com:636\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldap://` URL is used, but SASL authentication is enabled so that the credentials will be encrypted.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"DIGEST-MD5 GSSAPI\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\n\n## References\n* Oracle: [LDAP and LDAPS URLs](https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html)\n* Oracle: [Simple authentication](https://docs.oracle.com/javase/tutorial/jndi/ldap/simple.html)\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n",
+                  "text": "# Insecure LDAP authentication\nWhen using the Java LDAP API to perform LDAPv3-style extended operations and controls, a context with connection properties including user credentials is started. Transmission of LDAP credentials in cleartext allows remote attackers to obtain sensitive information by sniffing the network.\n\n\n## Recommendation\nUse the `ldaps://` protocol to send credentials through SSL or use SASL authentication.\n\n\n## Example\nIn the following (bad) example, a `ldap://` URL is used and credentials will be sent in plaintext.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldaps://` URL is used so credentials will be encrypted with SSL.\n\n\n```java\nString ldapUrl = \"ldaps://ad.your-server.com:636\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldap://` URL is used, but SASL authentication is enabled so that the credentials will be encrypted.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"DIGEST-MD5 GSSAPI\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\n\n## References\n* Oracle: [LDAP and LDAPS URLs](https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html)\n* Oracle: [Simple authentication](https://docs.oracle.com/javase/tutorial/jndi/ldap/simple.html)\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n"
+                },
+                "id": "java/insecure-ldap-auth",
+                "name": "java/insecure-ldap-auth",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-522/InsecureLdapAuth.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-319",
+                    "external/cwe/cwe-522",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure LDAP authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using a cryptographically Insecure pseudo-random number generator to generate a security-sensitive value may allow an attacker to predict what value will be generated."
+                },
+                "help": {
+                  "markdown": "# Insecure randomness\nIf you use a cryptographically weak pseudo-random number generator to generate security-sensitive values, such as passwords, attackers can more easily predict those values.\n\nPseudo-random number generators generate a sequence of numbers that only approximates the properties of random numbers. The sequence is not truly random because it is completely determined by a relatively small set of initial values (the seed). If the random number generator is cryptographically weak, then this sequence may be easily predictable through outside observations.\n\n\n## Recommendation\nThe `java.util.Random` random number generator is not cryptographically secure. Use a secure random number generator such as `java.security.SecureRandom` instead.\n\nUse a cryptographically secure pseudo-random number generator if the output is to be used in a security-sensitive context. As a general rule, a value should be considered \"security-sensitive\" if predicting it would allow the attacker to perform an action that they would otherwise be unable to perform. For example, if an attacker could predict the random password generated for a new user, they would be able to log in as that new user.\n\n\n## Example\nThe following examples show different ways of generating a cookie with a random value.\n\nIn the first (BAD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`Random`) is not cryptographically secure, so it may be possible for an attacker to predict the generated cookie.\n\n\n```java\nRandom r = new Random();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\nIn the second (GOOD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`SecureRandom`) is cryptographically secure, so it is not possible for an attacker to predict the generated cookie.\n\n\n```java\nSecureRandom r = new SecureRandom();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\n\n## References\n* Wikipedia: [Pseudo-random number generator](http://en.wikipedia.org/wiki/Pseudorandom_number_generator).\n* Java Docs: [Random](http://docs.oracle.com/javase/8/docs/api/java/util/Random.html).\n* Java Docs: [SecureRandom](http://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html).\n* Common Weakness Enumeration: [CWE-330](https://cwe.mitre.org/data/definitions/330.html).\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n",
+                  "text": "# Insecure randomness\nIf you use a cryptographically weak pseudo-random number generator to generate security-sensitive values, such as passwords, attackers can more easily predict those values.\n\nPseudo-random number generators generate a sequence of numbers that only approximates the properties of random numbers. The sequence is not truly random because it is completely determined by a relatively small set of initial values (the seed). If the random number generator is cryptographically weak, then this sequence may be easily predictable through outside observations.\n\n\n## Recommendation\nThe `java.util.Random` random number generator is not cryptographically secure. Use a secure random number generator such as `java.security.SecureRandom` instead.\n\nUse a cryptographically secure pseudo-random number generator if the output is to be used in a security-sensitive context. As a general rule, a value should be considered \"security-sensitive\" if predicting it would allow the attacker to perform an action that they would otherwise be unable to perform. For example, if an attacker could predict the random password generated for a new user, they would be able to log in as that new user.\n\n\n## Example\nThe following examples show different ways of generating a cookie with a random value.\n\nIn the first (BAD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`Random`) is not cryptographically secure, so it may be possible for an attacker to predict the generated cookie.\n\n\n```java\nRandom r = new Random();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\nIn the second (GOOD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`SecureRandom`) is cryptographically secure, so it is not possible for an attacker to predict the generated cookie.\n\n\n```java\nSecureRandom r = new SecureRandom();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\n\n## References\n* Wikipedia: [Pseudo-random number generator](http://en.wikipedia.org/wiki/Pseudorandom_number_generator).\n* Java Docs: [Random](http://docs.oracle.com/javase/8/docs/api/java/util/Random.html).\n* Java Docs: [SecureRandom](http://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html).\n* Common Weakness Enumeration: [CWE-330](https://cwe.mitre.org/data/definitions/330.html).\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n"
+                },
+                "id": "java/insecure-randomness",
+                "name": "java/insecure-randomness",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-330/InsecureRandomness.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-330",
+                    "external/cwe/cwe-338",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure randomness"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Configuring a Java application to use authenticated mail session over SSL without certificate validation makes the session susceptible to a man-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# Insecure JavaMail SSL Configuration\nJavaMail is commonly used in Java applications to send emails. There are popular third-party libraries like Apache Commons Email which are built on JavaMail and facilitate integration. Authenticated mail sessions require user credentials and mail sessions can require SSL/TLS authentication. It is a common security vulnerability that host-specific certificate data is not validated or is incorrectly validated. Failing to validate the certificate makes the SSL session susceptible to a man-in-the-middle attack.\n\nThis query checks whether the SSL certificate is validated when credentials are used and SSL is enabled in email communications.\n\nThe query has code for both plain JavaMail invocation and mailing through Apache SimpleMail to make it more comprehensive.\n\n\n## Recommendation\nValidate SSL certificate when sensitive information is sent in email communications.\n\n\n## Example\nThe following two examples show two ways of configuring secure emails through JavaMail or Apache SimpleMail. In the 'BAD' case, credentials are sent in an SSL session without certificate validation. In the 'GOOD' case, the certificate is validated.\n\n\n```java\nimport java.util.Properties;\n\nimport javax.activation.DataSource;\nimport javax.mail.Authenticator;\nimport javax.mail.Message;\nimport javax.mail.MessagingException;\nimport javax.mail.PasswordAuthentication;\nimport javax.mail.Session;\n\nimport org.apache.logging.log4j.util.PropertiesUtil;\n\nclass JavaMail {\n    public static void main(String[] args) {\n      // BAD: Don't have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n\n      // GOOD: Have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t\tproperties.put(\"mail.smtp.ssl.checkserveridentity\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n    }\n}\n```\n\n```java\nimport org.apache.commons.mail.DefaultAuthenticator;\nimport org.apache.commons.mail.Email;\nimport org.apache.commons.mail.EmailException;\nimport org.apache.commons.mail.SimpleEmail;\n\nclass SimpleMail {\n    public static void main(String[] args) throws EmailException {\n      // BAD: Don't have setSSLCheckServerIdentity set or set as false    \n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n        \n        //email.setSSLCheckServerIdentity(false);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n\n      // GOOD: Have setSSLCheckServerIdentity set to true\n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n\n        email.setSSLCheckServerIdentity(true);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n    }\n}\n```\n\n## References\n* Jakarta Mail: [SSL Notes](https://eclipse-ee4j.github.io/mail/docs/SSLNOTES.txt).\n* Apache Commons: [Email security](https://commons.apache.org/proper/commons-email/userguide.html#Security).\n* Log4j2: [Add support for specifying an SSL configuration for SmtpAppender (CVE-2020-9488)](https://issues.apache.org/jira/browse/LOG4J2-2819).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n",
+                  "text": "# Insecure JavaMail SSL Configuration\nJavaMail is commonly used in Java applications to send emails. There are popular third-party libraries like Apache Commons Email which are built on JavaMail and facilitate integration. Authenticated mail sessions require user credentials and mail sessions can require SSL/TLS authentication. It is a common security vulnerability that host-specific certificate data is not validated or is incorrectly validated. Failing to validate the certificate makes the SSL session susceptible to a man-in-the-middle attack.\n\nThis query checks whether the SSL certificate is validated when credentials are used and SSL is enabled in email communications.\n\nThe query has code for both plain JavaMail invocation and mailing through Apache SimpleMail to make it more comprehensive.\n\n\n## Recommendation\nValidate SSL certificate when sensitive information is sent in email communications.\n\n\n## Example\nThe following two examples show two ways of configuring secure emails through JavaMail or Apache SimpleMail. In the 'BAD' case, credentials are sent in an SSL session without certificate validation. In the 'GOOD' case, the certificate is validated.\n\n\n```java\nimport java.util.Properties;\n\nimport javax.activation.DataSource;\nimport javax.mail.Authenticator;\nimport javax.mail.Message;\nimport javax.mail.MessagingException;\nimport javax.mail.PasswordAuthentication;\nimport javax.mail.Session;\n\nimport org.apache.logging.log4j.util.PropertiesUtil;\n\nclass JavaMail {\n    public static void main(String[] args) {\n      // BAD: Don't have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n\n      // GOOD: Have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t\tproperties.put(\"mail.smtp.ssl.checkserveridentity\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n    }\n}\n```\n\n```java\nimport org.apache.commons.mail.DefaultAuthenticator;\nimport org.apache.commons.mail.Email;\nimport org.apache.commons.mail.EmailException;\nimport org.apache.commons.mail.SimpleEmail;\n\nclass SimpleMail {\n    public static void main(String[] args) throws EmailException {\n      // BAD: Don't have setSSLCheckServerIdentity set or set as false    \n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n        \n        //email.setSSLCheckServerIdentity(false);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n\n      // GOOD: Have setSSLCheckServerIdentity set to true\n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n\n        email.setSSLCheckServerIdentity(true);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n    }\n}\n```\n\n## References\n* Jakarta Mail: [SSL Notes](https://eclipse-ee4j.github.io/mail/docs/SSLNOTES.txt).\n* Apache Commons: [Email security](https://commons.apache.org/proper/commons-email/userguide.html#Security).\n* Log4j2: [Add support for specifying an SSL configuration for SmtpAppender (CVE-2020-9488)](https://issues.apache.org/jira/browse/LOG4J2-2819).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n"
+                },
+                "id": "java/insecure-smtp-ssl",
+                "name": "java/insecure-smtp-ssl",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-297/InsecureJavaMail.ql",
+                  "security-severity": "5.9",
+                  "tags": [
+                    "external/cwe/cwe-297",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure JavaMail SSL Configuration"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Trusting all certificates allows an attacker to perform a machine-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# `TrustManager` that accepts all certificates\nIf the `checkServerTrusted` method of a `TrustManager` never throws a `CertificateException`, it trusts every certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable program calls the `checkServerTrusted` method to check whether it should trust the certificate.\n1. The `checkServerTrusted` method of your `TrustManager` does not throw a `CertificateException`.\n1. The vulnerable program accepts the certificate and proceeds with the connection since your `TrustManager` implicitly trusted it by not throwing an exception.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use a custom `TrustManager` that trusts any certificate. If you have to use a self-signed certificate, don't trust every certificate, but instead only trust this specific certificate. See below for an example of how to do this.\n\n\n## Example\nIn the first (bad) example, the `TrustManager` never throws a `CertificateException` and therefore implicitly trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack. In the second (good) example, the self-signed certificate that should be trusted is loaded into a `KeyStore`. This explicitly defines the certificate as trusted and there is no need to create a custom `TrustManager`.\n\n\n```java\npublic static void main(String[] args) throws Exception {\n    {\n        class InsecureTrustManager implements X509TrustManager {\n            @Override\n            public X509Certificate[] getAcceptedIssuers() {\n                return null;\n            }\n\n            @Override\n            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n                // BAD: Does not verify the certificate chain, allowing any certificate.\n            }\n\n            @Override\n            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n\n            }\n        }\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        TrustManager[] trustManager = new TrustManager[] { new InsecureTrustManager() };\n        context.init(null, trustManager, null);\n    }\n    {\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        File certificateFile = new File(\"path/to/self-signed-certificate\");\n        // Create a `KeyStore` with default type\n        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());\n        // `keyStore` is initially empty\n        keyStore.load(null, null);\n        X509Certificate generatedCertificate;\n        try (InputStream cert = new FileInputStream(certificateFile)) {\n            generatedCertificate = (X509Certificate) CertificateFactory.getInstance(\"X509\")\n                    .generateCertificate(cert);\n        }\n        // Add the self-signed certificate to the key store\n        keyStore.setCertificateEntry(certificateFile.getName(), generatedCertificate);\n        // Get default `TrustManagerFactory`\n        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\n        // Use it with our key store that trusts our self-signed certificate\n        tmf.init(keyStore);\n        TrustManager[] trustManagers = tmf.getTrustManagers();\n        context.init(null, trustManagers, null);\n        // GOOD, we are not using a custom `TrustManager` but instead have\n        // added the self-signed certificate we want to trust to the key\n        // store. Note, the `trustManagers` will **only** trust this one\n        // certificate.\n        \n        URL url = new URL(\"https://self-signed.badssl.com/\");\n        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();\n        conn.setSSLSocketFactory(context.getSocketFactory());\n    }\n}\n\n```\n\n## References\n* Android Developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n",
+                  "text": "# `TrustManager` that accepts all certificates\nIf the `checkServerTrusted` method of a `TrustManager` never throws a `CertificateException`, it trusts every certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable program calls the `checkServerTrusted` method to check whether it should trust the certificate.\n1. The `checkServerTrusted` method of your `TrustManager` does not throw a `CertificateException`.\n1. The vulnerable program accepts the certificate and proceeds with the connection since your `TrustManager` implicitly trusted it by not throwing an exception.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use a custom `TrustManager` that trusts any certificate. If you have to use a self-signed certificate, don't trust every certificate, but instead only trust this specific certificate. See below for an example of how to do this.\n\n\n## Example\nIn the first (bad) example, the `TrustManager` never throws a `CertificateException` and therefore implicitly trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack. In the second (good) example, the self-signed certificate that should be trusted is loaded into a `KeyStore`. This explicitly defines the certificate as trusted and there is no need to create a custom `TrustManager`.\n\n\n```java\npublic static void main(String[] args) throws Exception {\n    {\n        class InsecureTrustManager implements X509TrustManager {\n            @Override\n            public X509Certificate[] getAcceptedIssuers() {\n                return null;\n            }\n\n            @Override\n            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n                // BAD: Does not verify the certificate chain, allowing any certificate.\n            }\n\n            @Override\n            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n\n            }\n        }\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        TrustManager[] trustManager = new TrustManager[] { new InsecureTrustManager() };\n        context.init(null, trustManager, null);\n    }\n    {\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        File certificateFile = new File(\"path/to/self-signed-certificate\");\n        // Create a `KeyStore` with default type\n        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());\n        // `keyStore` is initially empty\n        keyStore.load(null, null);\n        X509Certificate generatedCertificate;\n        try (InputStream cert = new FileInputStream(certificateFile)) {\n            generatedCertificate = (X509Certificate) CertificateFactory.getInstance(\"X509\")\n                    .generateCertificate(cert);\n        }\n        // Add the self-signed certificate to the key store\n        keyStore.setCertificateEntry(certificateFile.getName(), generatedCertificate);\n        // Get default `TrustManagerFactory`\n        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\n        // Use it with our key store that trusts our self-signed certificate\n        tmf.init(keyStore);\n        TrustManager[] trustManagers = tmf.getTrustManagers();\n        context.init(null, trustManagers, null);\n        // GOOD, we are not using a custom `TrustManager` but instead have\n        // added the self-signed certificate we want to trust to the key\n        // store. Note, the `trustManagers` will **only** trust this one\n        // certificate.\n        \n        URL url = new URL(\"https://self-signed.badssl.com/\");\n        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();\n        conn.setSSLSocketFactory(context.getSocketFactory());\n    }\n}\n\n```\n\n## References\n* Android Developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n"
+                },
+                "id": "java/insecure-trustmanager",
+                "name": "java/insecure-trustmanager",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-295/InsecureTrustManager.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-295",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "`TrustManager` that accepts all certificates"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using cryptographic algorithms with too small a key size can allow an attacker to compromise security."
+                },
+                "help": {
+                  "markdown": "# Use of a cryptographic algorithm with insufficient key size\nModern encryption relies on the computational infeasibility of breaking a cipher and decoding its message without the key. As computational power increases, the ability to break ciphers grows, and key sizes need to become larger as a result. Cryptographic algorithms that use too small of a key size are vulnerable to brute force attacks, which can reveal sensitive data.\n\n\n## Recommendation\nUse a key of the recommended size or larger. The key size should be at least 128 bits for AES encryption, 256 bits for elliptic-curve cryptography (ECC), and 2048 bits for RSA, DSA, or DH encryption.\n\n\n## Example\nThe following code uses cryptographic algorithms with insufficient key sizes.\n\n\n```java\n    KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance(\"RSA\");\n    keyPairGen1.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance(\"DSA\");\n    keyPairGen2.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance(\"DH\");\n    keyPairGen3.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance(\"EC\");\n    ECGenParameterSpec ecSpec = new ECGenParameterSpec(\"secp112r1\"); // BAD: Key size is less than 256\n    keyPairGen4.initialize(ecSpec);\n\n    KeyGenerator keyGen = KeyGenerator.getInstance(\"AES\");\n    keyGen.init(64); // BAD: Key size is less than 128\n\n```\nTo fix the code, change the key sizes to be the recommended size or larger for each algorithm.\n\n\n## References\n* Wikipedia: [Key size](http://en.wikipedia.org/wiki/Key_size).\n* Wikipedia: [Strong cryptography](https://en.wikipedia.org/wiki/Strong_cryptography).\n* OWASP: [ Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html#algorithms).\n* OWASP: [ Testing for Weak Encryption](https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/09-Testing_for_Weak_Cryptography/04-Testing_for_Weak_Encryption).\n* NIST: [ Transitioning the Use of Cryptographic Algorithms and Key Lengths](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf).\n* Common Weakness Enumeration: [CWE-326](https://cwe.mitre.org/data/definitions/326.html).\n",
+                  "text": "# Use of a cryptographic algorithm with insufficient key size\nModern encryption relies on the computational infeasibility of breaking a cipher and decoding its message without the key. As computational power increases, the ability to break ciphers grows, and key sizes need to become larger as a result. Cryptographic algorithms that use too small of a key size are vulnerable to brute force attacks, which can reveal sensitive data.\n\n\n## Recommendation\nUse a key of the recommended size or larger. The key size should be at least 128 bits for AES encryption, 256 bits for elliptic-curve cryptography (ECC), and 2048 bits for RSA, DSA, or DH encryption.\n\n\n## Example\nThe following code uses cryptographic algorithms with insufficient key sizes.\n\n\n```java\n    KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance(\"RSA\");\n    keyPairGen1.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance(\"DSA\");\n    keyPairGen2.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance(\"DH\");\n    keyPairGen3.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance(\"EC\");\n    ECGenParameterSpec ecSpec = new ECGenParameterSpec(\"secp112r1\"); // BAD: Key size is less than 256\n    keyPairGen4.initialize(ecSpec);\n\n    KeyGenerator keyGen = KeyGenerator.getInstance(\"AES\");\n    keyGen.init(64); // BAD: Key size is less than 128\n\n```\nTo fix the code, change the key sizes to be the recommended size or larger for each algorithm.\n\n\n## References\n* Wikipedia: [Key size](http://en.wikipedia.org/wiki/Key_size).\n* Wikipedia: [Strong cryptography](https://en.wikipedia.org/wiki/Strong_cryptography).\n* OWASP: [ Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html#algorithms).\n* OWASP: [ Testing for Weak Encryption](https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/09-Testing_for_Weak_Cryptography/04-Testing_for_Weak_Encryption).\n* NIST: [ Transitioning the Use of Cryptographic Algorithms and Key Lengths](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf).\n* Common Weakness Enumeration: [CWE-326](https://cwe.mitre.org/data/definitions/326.html).\n"
+                },
+                "id": "java/insufficient-key-size",
+                "name": "java/insufficient-key-size",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-326/InsufficientKeySize.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-326",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a cryptographic algorithm with insufficient key size"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled JEXL expression may lead to arbitrary code execution."
+                },
+                "help": {
+                  "markdown": "# Expression language injection (JEXL)\nJava EXpression Language (JEXL) is a simple expression language provided by the Apache Commons JEXL library. The syntax is close to a mix of ECMAScript and shell-script. The language allows invocation of methods available in the JVM. If a JEXL expression is built using attacker-controlled data, and then evaluated, then it may allow the attacker to run arbitrary code.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a JEXL expression. If it is not possible, JEXL expressions should be run in a sandbox that allows accessing only explicitly allowed classes.\n\n\n## Example\nThe following example uses untrusted data to build and run a JEXL expression.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    String input = reader.readLine();\n    JexlEngine jexl = new JexlBuilder().create();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows how an untrusted JEXL expression can be run in a sandbox that allows accessing only methods in the `java.lang.Math` class. The sandbox is implemented using `JexlSandbox` class that is provided by Apache Commons JEXL 3.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlSandbox onlyMath = new JexlSandbox(false);\n    onlyMath.white(\"java.lang.Math\");\n    JexlEngine jexl = new JexlBuilder().sandbox(onlyMath).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows another way how a sandbox can be implemented. It uses a custom implementation of `JexlUberspect` that checks if callees are instances of allowed classes.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlUberspect sandbox = new JexlUberspectSandbox();\n    JexlEngine jexl = new JexlBuilder().uberspect(sandbox).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n\n  private static class JexlUberspectSandbox implements JexlUberspect {\n\n    private static final List ALLOWED_CLASSES =\n              Arrays.asList(\"java.lang.Math\", \"java.util.Random\");\n\n    private final JexlUberspect uberspect = new JexlBuilder().create().getUberspect();\n\n    private void checkAccess(Object obj) {\n      if (!ALLOWED_CLASSES.contains(obj.getClass().getCanonicalName())) {\n        throw new AccessControlException(\"Not allowed\");\n      }\n    }\n\n    @Override\n    public JexlMethod getMethod(Object obj, String method, Object... args) {\n      checkAccess(obj);\n      return uberspect.getMethod(obj, method, args);\n    }\n\n    @Override\n    public List getResolvers(JexlOperator op, Object obj) {\n      checkAccess(obj);\n      return uberspect.getResolvers(op, obj);\n    }\n\n    @Override\n    public void setClassLoader(ClassLoader loader) {\n      uberspect.setClassLoader(loader);\n    }\n\n    @Override\n    public int getVersion() {\n      return uberspect.getVersion();\n    }\n\n    @Override\n    public JexlMethod getConstructor(Object obj, Object... args) {\n      checkAccess(obj);\n      return uberspect.getConstructor(obj, args);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(obj, identifier);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(List resolvers, Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(resolvers, obj, identifier);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(obj, identifier, arg);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(List resolvers, Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(resolvers, obj, identifier, arg);\n    }\n\n    @Override\n    public Iterator getIterator(Object obj) {\n      checkAccess(obj);\n      return uberspect.getIterator(obj);\n    }\n\n    @Override\n    public JexlArithmetic.Uberspect getArithmetic(JexlArithmetic arithmetic) {\n      return uberspect.getArithmetic(arithmetic);\n    } \n  }\n}\n```\n\n## References\n* Apache Commons JEXL: [Project page](https://commons.apache.org/proper/commons-jexl/).\n* Apache Commons JEXL documentation: [JEXL 2.1.1 API](https://commons.apache.org/proper/commons-jexl/javadocs/apidocs-2.1.1/).\n* Apache Commons JEXL documentation: [JEXL 3.1 API](https://commons.apache.org/proper/commons-jexl/apidocs/index.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Expression language injection (JEXL)\nJava EXpression Language (JEXL) is a simple expression language provided by the Apache Commons JEXL library. The syntax is close to a mix of ECMAScript and shell-script. The language allows invocation of methods available in the JVM. If a JEXL expression is built using attacker-controlled data, and then evaluated, then it may allow the attacker to run arbitrary code.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a JEXL expression. If it is not possible, JEXL expressions should be run in a sandbox that allows accessing only explicitly allowed classes.\n\n\n## Example\nThe following example uses untrusted data to build and run a JEXL expression.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    String input = reader.readLine();\n    JexlEngine jexl = new JexlBuilder().create();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows how an untrusted JEXL expression can be run in a sandbox that allows accessing only methods in the `java.lang.Math` class. The sandbox is implemented using `JexlSandbox` class that is provided by Apache Commons JEXL 3.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlSandbox onlyMath = new JexlSandbox(false);\n    onlyMath.white(\"java.lang.Math\");\n    JexlEngine jexl = new JexlBuilder().sandbox(onlyMath).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows another way how a sandbox can be implemented. It uses a custom implementation of `JexlUberspect` that checks if callees are instances of allowed classes.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlUberspect sandbox = new JexlUberspectSandbox();\n    JexlEngine jexl = new JexlBuilder().uberspect(sandbox).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n\n  private static class JexlUberspectSandbox implements JexlUberspect {\n\n    private static final List ALLOWED_CLASSES =\n              Arrays.asList(\"java.lang.Math\", \"java.util.Random\");\n\n    private final JexlUberspect uberspect = new JexlBuilder().create().getUberspect();\n\n    private void checkAccess(Object obj) {\n      if (!ALLOWED_CLASSES.contains(obj.getClass().getCanonicalName())) {\n        throw new AccessControlException(\"Not allowed\");\n      }\n    }\n\n    @Override\n    public JexlMethod getMethod(Object obj, String method, Object... args) {\n      checkAccess(obj);\n      return uberspect.getMethod(obj, method, args);\n    }\n\n    @Override\n    public List getResolvers(JexlOperator op, Object obj) {\n      checkAccess(obj);\n      return uberspect.getResolvers(op, obj);\n    }\n\n    @Override\n    public void setClassLoader(ClassLoader loader) {\n      uberspect.setClassLoader(loader);\n    }\n\n    @Override\n    public int getVersion() {\n      return uberspect.getVersion();\n    }\n\n    @Override\n    public JexlMethod getConstructor(Object obj, Object... args) {\n      checkAccess(obj);\n      return uberspect.getConstructor(obj, args);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(obj, identifier);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(List resolvers, Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(resolvers, obj, identifier);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(obj, identifier, arg);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(List resolvers, Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(resolvers, obj, identifier, arg);\n    }\n\n    @Override\n    public Iterator getIterator(Object obj) {\n      checkAccess(obj);\n      return uberspect.getIterator(obj);\n    }\n\n    @Override\n    public JexlArithmetic.Uberspect getArithmetic(JexlArithmetic arithmetic) {\n      return uberspect.getArithmetic(arithmetic);\n    } \n  }\n}\n```\n\n## References\n* Apache Commons JEXL: [Project page](https://commons.apache.org/proper/commons-jexl/).\n* Apache Commons JEXL documentation: [JEXL 2.1.1 API](https://commons.apache.org/proper/commons-jexl/javadocs/apidocs-2.1.1/).\n* Apache Commons JEXL documentation: [JEXL 3.1 API](https://commons.apache.org/proper/commons-jexl/apidocs/index.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/jexl-expression-injection",
+                "name": "java/jexl-expression-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/JexlInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Expression language injection (JEXL)"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a vulnerable version of JHipster to generate random numbers makes it easier for attackers to take over accounts."
+                },
+                "help": {
+                  "markdown": "# Detect JHipster Generator Vulnerability CVE-2019-16303\nThis query detects instances of `RandomUtil.java` that were generated by a [JHipster](https://www.jhipster.tech/) version that is vulnerable to [CVE-2019-16303](https://github.com/jhipster/jhipster-kotlin/security/advisories/GHSA-j3rh-8vwq-wh84).\n\nIf an app uses `RandomUtil.java` generated by a vulnerable version of JHipster, attackers can request a password reset token and use this to predict the value of future reset tokens generated by this server. Using this information, they can create a reset link that allows them to take over any account.\n\nThis vulnerability has a [ CVSS v3.0 Base Score of 9.8/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2019-16303&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST).\n\n\n## Example\nThe example below shows the vulnerable `RandomUtil` class generated by [JHipster prior to version 6.3.0](https://www.jhipster.tech/2019/09/13/jhipster-release-6.3.0.html).\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n\n    private static final int DEF_COUNT = 20;\n\n    private RandomUtil() {\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n}\n\n```\nBelow is a fixed version of the `RandomUtil` class.\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\nimport java.security.SecureRandom;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n    private static final SecureRandom SECURE_RANDOM = new SecureRandom(); // GOOD: Using SecureRandom\n\n    private static final int DEF_COUNT = 20;\n\n    static {\n        SECURE_RANDOM.nextBytes(new byte[64]);\n    }\n\n    private RandomUtil() {\n    }\n\n    private static String generateRandomAlphanumericString() {\n        // GOOD: Passing Secure Random to RandomStringUtils::random\n        return RandomStringUtils.random(DEF_COUNT, 0, 0, true, true, null, SECURE_RANDOM);\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return generateRandomAlphanumericString();\n    }\n}\n\n```\n\n## Recommendation\nYou should refactor the `RandomUtil` class and replace every call to `RandomStringUtils.randomAlphaNumeric`. You could regenerate the class using the latest version of JHipster, or use an automated refactoring. For example, using the [Patching JHipster CWE-338](https://github.com/moderneinc/jhipster-cwe-338) for the [Rewrite project](https://github.com/openrewrite/rewrite).\n\n\n## References\n* Cloudflare Blog: [ Why secure systems require random numbers ](https://blog.cloudflare.com/why-randomness-matters/)\n* Hacker News: [ How I Hacked Hacker News (with arc security advisory) ](https://news.ycombinator.com/item?id=639976)\n* Posts by Pucara Information Security Team: [ The Java Soothsayer: A practical application for insecure randomness. (Includes free 0day) ](https://blog.pucarasec.com/2020/05/09/the-java-soothsayer-a-practical-application-for-insecure-randomness-includes-free-0day/)\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n",
+                  "text": "# Detect JHipster Generator Vulnerability CVE-2019-16303\nThis query detects instances of `RandomUtil.java` that were generated by a [JHipster](https://www.jhipster.tech/) version that is vulnerable to [CVE-2019-16303](https://github.com/jhipster/jhipster-kotlin/security/advisories/GHSA-j3rh-8vwq-wh84).\n\nIf an app uses `RandomUtil.java` generated by a vulnerable version of JHipster, attackers can request a password reset token and use this to predict the value of future reset tokens generated by this server. Using this information, they can create a reset link that allows them to take over any account.\n\nThis vulnerability has a [ CVSS v3.0 Base Score of 9.8/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2019-16303&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST).\n\n\n## Example\nThe example below shows the vulnerable `RandomUtil` class generated by [JHipster prior to version 6.3.0](https://www.jhipster.tech/2019/09/13/jhipster-release-6.3.0.html).\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n\n    private static final int DEF_COUNT = 20;\n\n    private RandomUtil() {\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n}\n\n```\nBelow is a fixed version of the `RandomUtil` class.\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\nimport java.security.SecureRandom;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n    private static final SecureRandom SECURE_RANDOM = new SecureRandom(); // GOOD: Using SecureRandom\n\n    private static final int DEF_COUNT = 20;\n\n    static {\n        SECURE_RANDOM.nextBytes(new byte[64]);\n    }\n\n    private RandomUtil() {\n    }\n\n    private static String generateRandomAlphanumericString() {\n        // GOOD: Passing Secure Random to RandomStringUtils::random\n        return RandomStringUtils.random(DEF_COUNT, 0, 0, true, true, null, SECURE_RANDOM);\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return generateRandomAlphanumericString();\n    }\n}\n\n```\n\n## Recommendation\nYou should refactor the `RandomUtil` class and replace every call to `RandomStringUtils.randomAlphaNumeric`. You could regenerate the class using the latest version of JHipster, or use an automated refactoring. For example, using the [Patching JHipster CWE-338](https://github.com/moderneinc/jhipster-cwe-338) for the [Rewrite project](https://github.com/openrewrite/rewrite).\n\n\n## References\n* Cloudflare Blog: [ Why secure systems require random numbers ](https://blog.cloudflare.com/why-randomness-matters/)\n* Hacker News: [ How I Hacked Hacker News (with arc security advisory) ](https://news.ycombinator.com/item?id=639976)\n* Posts by Pucara Information Security Team: [ The Java Soothsayer: A practical application for insecure randomness. (Includes free 0day) ](https://blog.pucarasec.com/2020/05/09/the-java-soothsayer-a-practical-application-for-insecure-randomness-includes-free-0day/)\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n"
+                },
+                "id": "java/jhipster-prng",
+                "name": "java/jhipster-prng",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-338/JHipsterGeneratedPRNG.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-338",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Detect JHipster Generator Vulnerability CVE-2019-16303"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Performing a JNDI lookup with a user-controlled name can lead to the download of an untrusted object and to execution of arbitrary code."
+                },
+                "help": {
+                  "markdown": "# JNDI lookup with user-controlled name\nThe Java Naming and Directory Interface (JNDI) is a Java API for a directory service that allows Java software clients to discover and look up data and resources (in the form of Java objects) via a name. If the name being used to look up the data is controlled by the user, it can point to a malicious server, which can return an arbitrary object. In the worst case, this can allow remote code execution.\n\n\n## Recommendation\nThe general recommendation is to avoid passing untrusted data to the `InitialContext.lookup ` method. If the name being used to look up the object must be provided by the user, make sure that it's not in the form of an absolute URL or that it's the URL pointing to a trusted server.\n\n\n## Example\nIn the following examples, the code accepts a name from the user, which it uses to look up an object.\n\nIn the first example, the user provided name is used to look up an object.\n\nThe second example validates the name before using it to look up an object.\n\n\n```java\nimport javax.naming.Context;\nimport javax.naming.InitialContext;\n\npublic void jndiLookup(HttpServletRequest request) throws NamingException {\n  String name = request.getParameter(\"name\");\n\n  Hashtable env = new Hashtable();\n  env.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.rmi.registry.RegistryContextFactory\");\n  env.put(Context.PROVIDER_URL, \"rmi://trusted-server:1099\");\n  InitialContext ctx = new InitialContext(env);\n\n  // BAD: User input used in lookup\n  ctx.lookup(name);\n\n  // GOOD: The name is validated before being used in lookup\n  if (isValid(name)) {\n    ctx.lookup(name);\n  } else {\n    // Reject the request\n  }\n}\n```\n\n## References\n* Oracle: [Java Naming and Directory Interface (JNDI)](https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/).\n* Black Hat materials: [A Journey from JNDI/LDAP Manipulation to Remote Code Execution Dream Land](https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf).\n* Veracode: [Exploiting JNDI Injections in Java](https://www.veracode.com/blog/research/exploiting-jndi-injections-java).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n",
+                  "text": "# JNDI lookup with user-controlled name\nThe Java Naming and Directory Interface (JNDI) is a Java API for a directory service that allows Java software clients to discover and look up data and resources (in the form of Java objects) via a name. If the name being used to look up the data is controlled by the user, it can point to a malicious server, which can return an arbitrary object. In the worst case, this can allow remote code execution.\n\n\n## Recommendation\nThe general recommendation is to avoid passing untrusted data to the `InitialContext.lookup ` method. If the name being used to look up the object must be provided by the user, make sure that it's not in the form of an absolute URL or that it's the URL pointing to a trusted server.\n\n\n## Example\nIn the following examples, the code accepts a name from the user, which it uses to look up an object.\n\nIn the first example, the user provided name is used to look up an object.\n\nThe second example validates the name before using it to look up an object.\n\n\n```java\nimport javax.naming.Context;\nimport javax.naming.InitialContext;\n\npublic void jndiLookup(HttpServletRequest request) throws NamingException {\n  String name = request.getParameter(\"name\");\n\n  Hashtable env = new Hashtable();\n  env.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.rmi.registry.RegistryContextFactory\");\n  env.put(Context.PROVIDER_URL, \"rmi://trusted-server:1099\");\n  InitialContext ctx = new InitialContext(env);\n\n  // BAD: User input used in lookup\n  ctx.lookup(name);\n\n  // GOOD: The name is validated before being used in lookup\n  if (isValid(name)) {\n    ctx.lookup(name);\n  } else {\n    // Reject the request\n  }\n}\n```\n\n## References\n* Oracle: [Java Naming and Directory Interface (JNDI)](https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/).\n* Black Hat materials: [A Journey from JNDI/LDAP Manipulation to Remote Code Execution Dream Land](https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf).\n* Veracode: [Exploiting JNDI Injections in Java](https://www.veracode.com/blog/research/exploiting-jndi-injections-java).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n"
+                },
+                "id": "java/jndi-injection",
+                "name": "java/jndi-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-074/JndiInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-074",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "JNDI lookup with user-controlled name"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building an LDAP query from user-controlled sources is vulnerable to insertion of malicious LDAP code by the user."
+                },
+                "help": {
+                  "markdown": "# LDAP query built from user-controlled sources\nIf an LDAP query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious LDAP queries.\n\n\n## Recommendation\nIf user input must be included in an LDAP query, it should be escaped to avoid a malicious user providing special characters that change the meaning of the query. If possible build the LDAP query using framework helper methods, for example from Spring's `LdapQueryBuilder` and `LdapNameBuilder`, instead of string concatenation. Alternatively, escape user input using an appropriate LDAP encoding method, for example: `encodeForLDAP` or `encodeForDN` from OWASP ESAPI, `LdapEncoder.filterEncode` or `LdapEncoder.nameEncode` from Spring LDAP, or `Filter.encodeValue` from UnboundID library.\n\n\n## Example\nIn the following examples, the code accepts an \"organization name\" and a \"username\" from the user, which it uses to query LDAP.\n\nThe first example concatenates the unvalidated and unencoded user input directly into both the DN (Distinguished Name) and the search filter used for the LDAP query. A malicious user could provide special characters to change the meaning of these queries, and search for a completely different set of values. The LDAP query is executed using Java JNDI API.\n\nThe second example uses the OWASP ESAPI library to encode the user values before they are included in the DN and search filters. This ensures the meaning of the query cannot be changed by a malicious user.\n\n\n```java\nimport javax.naming.directory.DirContext;\nimport org.owasp.esapi.Encoder;\nimport org.owasp.esapi.reference.DefaultEncoder;\n\npublic void ldapQueryBad(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // BAD: User input used in DN (Distinguished Name) without encoding\n  String dn = \"OU=People,O=\" + organizationName;\n\n  // BAD: User input used in search filter without encoding\n  String filter = \"username=\" + userName;\n\n  ctx.search(dn, filter, new SearchControls());\n}\n\npublic void ldapQueryGood(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // ESAPI encoder\n  Encoder encoder = DefaultEncoder.getInstance();\n\n  // GOOD: Organization name is encoded before being used in DN\n  String safeOrganizationName = encoder.encodeForDN(organizationName);\n  String safeDn = \"OU=People,O=\" + safeOrganizationName;\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeUsername = encoder.encodeForLDAP(username);\n  String safeFilter = \"username=\" + safeUsername;\n  \n  ctx.search(safeDn, safeFilter, new SearchControls());\n}\n```\nThe third example uses Spring `LdapQueryBuilder` to build an LDAP query. In addition to simplifying the building of complex search parameters, it also provides proper escaping of any unsafe characters in search filters. The DN is built using `LdapNameBuilder`, which also provides proper escaping.\n\n\n```java\nimport static org.springframework.ldap.query.LdapQueryBuilder.query;\nimport org.springframework.ldap.support.LdapNameBuilder;\n\npublic void ldapQueryGood(@RequestParam String organizationName, @RequestParam String username) {\n  // GOOD: Organization name is encoded before being used in DN\n  String safeDn = LdapNameBuilder.newInstance()\n    .add(\"O\", organizationName)\n    .add(\"OU=People\")\n    .build().toString();\n\n  // GOOD: User input is encoded before being used in search filter\n  LdapQuery query = query()\n    .base(safeDn)\n    .where(\"username\").is(username);\n\n  ldapTemplate.search(query, new AttributeCheckAttributesMapper());\n}\n```\nThe fourth example uses `UnboundID` classes, `Filter` and `DN`, to construct a safe filter and base DN.\n\n\n```java\nimport com.unboundid.ldap.sdk.LDAPConnection;\nimport com.unboundid.ldap.sdk.DN;\nimport com.unboundid.ldap.sdk.RDN;\nimport com.unboundid.ldap.sdk.Filter;\n\npublic void ldapQueryGood(HttpServletRequest request, LDAPConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  DN safeDn = new DN(new RDN(\"OU\", \"People\"), new RDN(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  Filter safeFilter = Filter.createEqualityFilter(\"username\", username);\n  \n  c.search(safeDn.toString(), SearchScope.ONE, safeFilter);\n}\n```\nThe fifth example shows how to build a safe filter and DN using the Apache LDAP API.\n\n\n```java\nimport org.apache.directory.ldap.client.api.LdapConnection;\nimport org.apache.directory.api.ldap.model.name.Dn;\nimport org.apache.directory.api.ldap.model.name.Rdn;\nimport org.apache.directory.api.ldap.model.message.SearchRequest;\nimport org.apache.directory.api.ldap.model.message.SearchRequestImpl;\nimport static org.apache.directory.ldap.client.api.search.FilterBuilder.equal;\n\npublic void ldapQueryGood(HttpServletRequest request, LdapConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  Dn safeDn = new Dn(new Rdn(\"OU\", \"People\"), new Rdn(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeFilter = equal(\"username\", username);\n  \n  SearchRequest searchRequest = new SearchRequestImpl();\n  searchRequest.setBase(safeDn);\n  searchRequest.setFilter(safeFilter);\n  c.search(searchRequest);\n}\n```\n\n## References\n* OWASP: [LDAP Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet.html).\n* OWASP ESAPI: [OWASP ESAPI](https://owasp.org/www-project-enterprise-security-api/).\n* Spring LdapQueryBuilder doc: [LdapQueryBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/query/LdapQueryBuilder.html).\n* Spring LdapNameBuilder doc: [LdapNameBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/support/LdapNameBuilder.html).\n* UnboundID: [Understanding and Defending Against LDAP Injection Attacks](https://ldap.com/2018/05/04/understanding-and-defending-against-ldap-injection-attacks/).\n* Common Weakness Enumeration: [CWE-90](https://cwe.mitre.org/data/definitions/90.html).\n",
+                  "text": "# LDAP query built from user-controlled sources\nIf an LDAP query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious LDAP queries.\n\n\n## Recommendation\nIf user input must be included in an LDAP query, it should be escaped to avoid a malicious user providing special characters that change the meaning of the query. If possible build the LDAP query using framework helper methods, for example from Spring's `LdapQueryBuilder` and `LdapNameBuilder`, instead of string concatenation. Alternatively, escape user input using an appropriate LDAP encoding method, for example: `encodeForLDAP` or `encodeForDN` from OWASP ESAPI, `LdapEncoder.filterEncode` or `LdapEncoder.nameEncode` from Spring LDAP, or `Filter.encodeValue` from UnboundID library.\n\n\n## Example\nIn the following examples, the code accepts an \"organization name\" and a \"username\" from the user, which it uses to query LDAP.\n\nThe first example concatenates the unvalidated and unencoded user input directly into both the DN (Distinguished Name) and the search filter used for the LDAP query. A malicious user could provide special characters to change the meaning of these queries, and search for a completely different set of values. The LDAP query is executed using Java JNDI API.\n\nThe second example uses the OWASP ESAPI library to encode the user values before they are included in the DN and search filters. This ensures the meaning of the query cannot be changed by a malicious user.\n\n\n```java\nimport javax.naming.directory.DirContext;\nimport org.owasp.esapi.Encoder;\nimport org.owasp.esapi.reference.DefaultEncoder;\n\npublic void ldapQueryBad(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // BAD: User input used in DN (Distinguished Name) without encoding\n  String dn = \"OU=People,O=\" + organizationName;\n\n  // BAD: User input used in search filter without encoding\n  String filter = \"username=\" + userName;\n\n  ctx.search(dn, filter, new SearchControls());\n}\n\npublic void ldapQueryGood(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // ESAPI encoder\n  Encoder encoder = DefaultEncoder.getInstance();\n\n  // GOOD: Organization name is encoded before being used in DN\n  String safeOrganizationName = encoder.encodeForDN(organizationName);\n  String safeDn = \"OU=People,O=\" + safeOrganizationName;\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeUsername = encoder.encodeForLDAP(username);\n  String safeFilter = \"username=\" + safeUsername;\n  \n  ctx.search(safeDn, safeFilter, new SearchControls());\n}\n```\nThe third example uses Spring `LdapQueryBuilder` to build an LDAP query. In addition to simplifying the building of complex search parameters, it also provides proper escaping of any unsafe characters in search filters. The DN is built using `LdapNameBuilder`, which also provides proper escaping.\n\n\n```java\nimport static org.springframework.ldap.query.LdapQueryBuilder.query;\nimport org.springframework.ldap.support.LdapNameBuilder;\n\npublic void ldapQueryGood(@RequestParam String organizationName, @RequestParam String username) {\n  // GOOD: Organization name is encoded before being used in DN\n  String safeDn = LdapNameBuilder.newInstance()\n    .add(\"O\", organizationName)\n    .add(\"OU=People\")\n    .build().toString();\n\n  // GOOD: User input is encoded before being used in search filter\n  LdapQuery query = query()\n    .base(safeDn)\n    .where(\"username\").is(username);\n\n  ldapTemplate.search(query, new AttributeCheckAttributesMapper());\n}\n```\nThe fourth example uses `UnboundID` classes, `Filter` and `DN`, to construct a safe filter and base DN.\n\n\n```java\nimport com.unboundid.ldap.sdk.LDAPConnection;\nimport com.unboundid.ldap.sdk.DN;\nimport com.unboundid.ldap.sdk.RDN;\nimport com.unboundid.ldap.sdk.Filter;\n\npublic void ldapQueryGood(HttpServletRequest request, LDAPConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  DN safeDn = new DN(new RDN(\"OU\", \"People\"), new RDN(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  Filter safeFilter = Filter.createEqualityFilter(\"username\", username);\n  \n  c.search(safeDn.toString(), SearchScope.ONE, safeFilter);\n}\n```\nThe fifth example shows how to build a safe filter and DN using the Apache LDAP API.\n\n\n```java\nimport org.apache.directory.ldap.client.api.LdapConnection;\nimport org.apache.directory.api.ldap.model.name.Dn;\nimport org.apache.directory.api.ldap.model.name.Rdn;\nimport org.apache.directory.api.ldap.model.message.SearchRequest;\nimport org.apache.directory.api.ldap.model.message.SearchRequestImpl;\nimport static org.apache.directory.ldap.client.api.search.FilterBuilder.equal;\n\npublic void ldapQueryGood(HttpServletRequest request, LdapConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  Dn safeDn = new Dn(new Rdn(\"OU\", \"People\"), new Rdn(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeFilter = equal(\"username\", username);\n  \n  SearchRequest searchRequest = new SearchRequestImpl();\n  searchRequest.setBase(safeDn);\n  searchRequest.setFilter(safeFilter);\n  c.search(searchRequest);\n}\n```\n\n## References\n* OWASP: [LDAP Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet.html).\n* OWASP ESAPI: [OWASP ESAPI](https://owasp.org/www-project-enterprise-security-api/).\n* Spring LdapQueryBuilder doc: [LdapQueryBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/query/LdapQueryBuilder.html).\n* Spring LdapNameBuilder doc: [LdapNameBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/support/LdapNameBuilder.html).\n* UnboundID: [Understanding and Defending Against LDAP Injection Attacks](https://ldap.com/2018/05/04/understanding-and-defending-against-ldap-injection-attacks/).\n* Common Weakness Enumeration: [CWE-90](https://cwe.mitre.org/data/definitions/90.html).\n"
+                },
+                "id": "java/ldap-injection",
+                "name": "java/ldap-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-090/LdapInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-090",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "LDAP query built from user-controlled sources"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Writing information without explicit permissions to a shared temporary directory may disclose it to other users."
+                },
+                "help": {
+                  "markdown": "# Local information disclosure in a temporary directory\nLocal information disclosure can occur when files/directories are written into directories that are shared between all users on the system.\n\nOn most [unix-like](https://en.wikipedia.org/wiki/Unix-like) systems, the system temporary directory is shared between local users. If files/directories are created within the system temporary directory without using APIs that explicitly set the correct file permissions, local information disclosure can occur.\n\nDepending upon the particular file contents exposed, this vulnerability can have a [CVSSv3.1 base score of 6.2/10](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N&version=3.1).\n\n\n## Recommendation\nUse JDK methods that specifically protect against this vulnerability:\n\n* [java.nio.file.Files.createTempDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.nio.file.Path-java.lang.String-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createTempFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.nio.file.Path-java.lang.String-java.lang.String-java.nio.file.attribute.FileAttribute...-)\nOtherwise, create the file/directory by manually specifying the expected posix file permissions. For example: `PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))`\n\n* [java.nio.file.Files.createFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createFile-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectory-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectories](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectories-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n\n## Example\nIn the following example, files and directories are created with file permissions that allow other local users to read their contents.\n\n\n```java\nimport java.io.File;\n\npublic class TempDirUsageVulnerable {\n    void exampleVulnerable() {\n        File temp1 = File.createTempFile(\"random\", \".txt\"); // BAD: File has permissions `-rw-r--r--`\n\n        File temp2 = File.createTempFile(\"random\", \"file\", null); // BAD: File has permissions `-rw-r--r--`\n\n        File systemTempDir = new File(System.getProperty(\"java.io.tmpdir\"));\n        File temp3 = File.createTempFile(\"random\", \"file\", systemTempDir); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDir = com.google.common.io.Files.createTempDir(); // BAD: CVE-2020-8908: Directory has permissions `drwxr-xr-x`\n\n        new File(System.getProperty(\"java.io.tmpdir\"), \"/child\").mkdir(); // BAD: Directory has permissions `-rw-r--r--`\n\n        File tempDirChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        Files.createFile(tempDirChildFile.toPath()); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        tempDirChildDir.mkdir(); // BAD: Directory has permissions `drwxr-xr-x`\n        Files.createDirectory(tempDirChildDir.toPath()); // BAD: Directory has permissions `drwxr-xr-x`\n    }\n}\n\n```\nIn the following example, files and directories are created with file permissions that protect their contents.\n\n\n```java\nimport java.io.File;\nimport java.io.IOException;\nimport java.io.UncheckedIOException;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.nio.file.attribute.PosixFilePermission;\nimport java.nio.file.attribute.PosixFilePermissions;\n\nimport java.util.EnumSet;\n\n\npublic class TempDirUsageSafe {\n    void exampleSafe() throws IOException {\n        Path temp1 = Files.createTempFile(\"random\", \".txt\"); // GOOD: File has permissions `-rw-------`\n\n        Path temp2 = Files.createTempDirectory(\"random-directory\"); // GOOD: File has permissions `drwx------`\n\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        // Warning: This will fail on windows as it doesn't support PosixFilePermissions.\n        // See `exampleSafeWithWindowsSupportFile` if your code needs to support windows and unix-like systems.\n        Files.createFile(\n            tempChildFile.toPath(),\n            PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))\n        ); // GOOD: Good has permissions `-rw-------`\n    }\n\n    /*\n     * An example of a safe use of createFile or createDirectory if your code must support windows and unix-like systems.\n     */\n    void exampleSafeWithWindowsSupportFile() {\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        createTempFile(tempChildFile.toPath()); // GOOD: Good has permissions `-rw-------`\n    }\n\n    static void createTempFile(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createFile(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `-rw-------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `-rw-------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectory(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp file\", exception);\n        }\n    }\n\n    void exampleSafeWithWindowsSupportDirectory() {\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        createTempDirectories(tempDirChildDir.toPath()); // GOOD: Directory has permissions `drwx------`\n    }\n\n    static void createTempDirectories(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE,\n                            PosixFilePermission.OWNER_EXECUTE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createDirectories(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `drwx------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `drwx------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectories(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp dir\", exception);\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Insecure Temporary File](https://owasp.org/www-community/vulnerabilities/Insecure_Temporary_File).\n* CERT: [FIO00-J. Do not operate on files in shared directories](https://wiki.sei.cmu.edu/confluence/display/java/FIO00-J.+Do+not+operate+on+files+in+shared+directories).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n",
+                  "text": "# Local information disclosure in a temporary directory\nLocal information disclosure can occur when files/directories are written into directories that are shared between all users on the system.\n\nOn most [unix-like](https://en.wikipedia.org/wiki/Unix-like) systems, the system temporary directory is shared between local users. If files/directories are created within the system temporary directory without using APIs that explicitly set the correct file permissions, local information disclosure can occur.\n\nDepending upon the particular file contents exposed, this vulnerability can have a [CVSSv3.1 base score of 6.2/10](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N&version=3.1).\n\n\n## Recommendation\nUse JDK methods that specifically protect against this vulnerability:\n\n* [java.nio.file.Files.createTempDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.nio.file.Path-java.lang.String-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createTempFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.nio.file.Path-java.lang.String-java.lang.String-java.nio.file.attribute.FileAttribute...-)\nOtherwise, create the file/directory by manually specifying the expected posix file permissions. For example: `PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))`\n\n* [java.nio.file.Files.createFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createFile-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectory-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectories](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectories-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n\n## Example\nIn the following example, files and directories are created with file permissions that allow other local users to read their contents.\n\n\n```java\nimport java.io.File;\n\npublic class TempDirUsageVulnerable {\n    void exampleVulnerable() {\n        File temp1 = File.createTempFile(\"random\", \".txt\"); // BAD: File has permissions `-rw-r--r--`\n\n        File temp2 = File.createTempFile(\"random\", \"file\", null); // BAD: File has permissions `-rw-r--r--`\n\n        File systemTempDir = new File(System.getProperty(\"java.io.tmpdir\"));\n        File temp3 = File.createTempFile(\"random\", \"file\", systemTempDir); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDir = com.google.common.io.Files.createTempDir(); // BAD: CVE-2020-8908: Directory has permissions `drwxr-xr-x`\n\n        new File(System.getProperty(\"java.io.tmpdir\"), \"/child\").mkdir(); // BAD: Directory has permissions `-rw-r--r--`\n\n        File tempDirChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        Files.createFile(tempDirChildFile.toPath()); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        tempDirChildDir.mkdir(); // BAD: Directory has permissions `drwxr-xr-x`\n        Files.createDirectory(tempDirChildDir.toPath()); // BAD: Directory has permissions `drwxr-xr-x`\n    }\n}\n\n```\nIn the following example, files and directories are created with file permissions that protect their contents.\n\n\n```java\nimport java.io.File;\nimport java.io.IOException;\nimport java.io.UncheckedIOException;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.nio.file.attribute.PosixFilePermission;\nimport java.nio.file.attribute.PosixFilePermissions;\n\nimport java.util.EnumSet;\n\n\npublic class TempDirUsageSafe {\n    void exampleSafe() throws IOException {\n        Path temp1 = Files.createTempFile(\"random\", \".txt\"); // GOOD: File has permissions `-rw-------`\n\n        Path temp2 = Files.createTempDirectory(\"random-directory\"); // GOOD: File has permissions `drwx------`\n\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        // Warning: This will fail on windows as it doesn't support PosixFilePermissions.\n        // See `exampleSafeWithWindowsSupportFile` if your code needs to support windows and unix-like systems.\n        Files.createFile(\n            tempChildFile.toPath(),\n            PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))\n        ); // GOOD: Good has permissions `-rw-------`\n    }\n\n    /*\n     * An example of a safe use of createFile or createDirectory if your code must support windows and unix-like systems.\n     */\n    void exampleSafeWithWindowsSupportFile() {\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        createTempFile(tempChildFile.toPath()); // GOOD: Good has permissions `-rw-------`\n    }\n\n    static void createTempFile(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createFile(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `-rw-------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `-rw-------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectory(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp file\", exception);\n        }\n    }\n\n    void exampleSafeWithWindowsSupportDirectory() {\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        createTempDirectories(tempDirChildDir.toPath()); // GOOD: Directory has permissions `drwx------`\n    }\n\n    static void createTempDirectories(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE,\n                            PosixFilePermission.OWNER_EXECUTE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createDirectories(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `drwx------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `drwx------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectories(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp dir\", exception);\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Insecure Temporary File](https://owasp.org/www-community/vulnerabilities/Insecure_Temporary_File).\n* CERT: [FIO00-J. Do not operate on files in shared directories](https://wiki.sei.cmu.edu/confluence/display/java/FIO00-J.+Do+not+operate+on+files+in+shared+directories).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n"
+                },
+                "id": "java/local-temp-file-or-directory-information-disclosure",
+                "name": "java/local-temp-file-or-directory-information-disclosure",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "external/cwe/cwe-732",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Local information disclosure in a temporary directory"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building log entries from user-controlled data may allow insertion of forged log entries by malicious users."
+                },
+                "help": {
+                  "markdown": "# Log Injection\nIf unsanitized user input is written to a log entry, a malicious user may be able to forge new log entries.\n\nForgery can occur if a user provides some input creating the appearance of multiple log entries. This can include unescaped new-line characters, or HTML or other markup.\n\n\n## Recommendation\nUser input should be suitably sanitized before it is logged.\n\nIf the log entries are plain text then line breaks should be removed from user input, using for example `String replace(char oldChar, char newChar)` or similar. Care should also be taken that user input is clearly marked in log entries, and that a malicious user cannot cause confusion in other ways.\n\nFor log entries that will be displayed in HTML, user input should be HTML encoded before being logged, to prevent forgery and other forms of HTML injection.\n\n\n## Example\nIn the first example, a username, provided by the user, is logged using `logger.warn` (from `org.slf4j.Logger`). In the first case (`/bad` endpoint), the username is logged without any sanitization. If a malicious user provides `Guest'%0AUser:'Admin` as a username parameter, the log entry will be split into two separate lines, where the first line will be `User:'Guest'` and the second one will be `User:'Admin'`.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /bad?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/bad\")\n    public String bad(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        log.warn(\"User:'{}'\", username);\n        // The logging call above would result in multiple log entries as shown below:\n        // User:'Guest'\n        // User:'Admin'\n        return username;\n    }\n}\n\n\n```\nIn the second example (`/good` endpoint), `matches()` is used to ensure the user input only has alphanumeric characters. If a malicious user provides \\`Guest'%0AUser:'Admin\\` as a username parameter, the log entry will not be logged at all, preventing the injection.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /good?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/good\")\n    public String good(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        // The regex check here, allows only alphanumeric characters to pass.\n        // Hence, does not result in log injection\n        if (username.matches(\"\\\\w*\")) {\n            log.warn(\"User:'{}'\", username);\n\n            return username;\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n* Common Weakness Enumeration: [CWE-117](https://cwe.mitre.org/data/definitions/117.html).\n",
+                  "text": "# Log Injection\nIf unsanitized user input is written to a log entry, a malicious user may be able to forge new log entries.\n\nForgery can occur if a user provides some input creating the appearance of multiple log entries. This can include unescaped new-line characters, or HTML or other markup.\n\n\n## Recommendation\nUser input should be suitably sanitized before it is logged.\n\nIf the log entries are plain text then line breaks should be removed from user input, using for example `String replace(char oldChar, char newChar)` or similar. Care should also be taken that user input is clearly marked in log entries, and that a malicious user cannot cause confusion in other ways.\n\nFor log entries that will be displayed in HTML, user input should be HTML encoded before being logged, to prevent forgery and other forms of HTML injection.\n\n\n## Example\nIn the first example, a username, provided by the user, is logged using `logger.warn` (from `org.slf4j.Logger`). In the first case (`/bad` endpoint), the username is logged without any sanitization. If a malicious user provides `Guest'%0AUser:'Admin` as a username parameter, the log entry will be split into two separate lines, where the first line will be `User:'Guest'` and the second one will be `User:'Admin'`.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /bad?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/bad\")\n    public String bad(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        log.warn(\"User:'{}'\", username);\n        // The logging call above would result in multiple log entries as shown below:\n        // User:'Guest'\n        // User:'Admin'\n        return username;\n    }\n}\n\n\n```\nIn the second example (`/good` endpoint), `matches()` is used to ensure the user input only has alphanumeric characters. If a malicious user provides \\`Guest'%0AUser:'Admin\\` as a username parameter, the log entry will not be logged at all, preventing the injection.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /good?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/good\")\n    public String good(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        // The regex check here, allows only alphanumeric characters to pass.\n        // Hence, does not result in log injection\n        if (username.matches(\"\\\\w*\")) {\n            log.warn(\"User:'{}'\", username);\n\n            return username;\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n* Common Weakness Enumeration: [CWE-117](https://cwe.mitre.org/data/definitions/117.html).\n"
+                },
+                "id": "java/log-injection",
+                "name": "java/log-injection",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-117/LogInjection.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-117",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Log Injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a deprecated artifact repository may eventually give attackers access for a supply chain attack."
+                },
+                "help": {
+                  "markdown": "# Depending upon JCenter/Bintray as an artifact repository\n[Bintray and JCenter are shutting down on February 1st, 2022](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/). Relying upon repositories that are deprecated or scheduled to be shutdown can have unintended consequences; for example, artifacts being resolved from a different artifact server or a total failure of the CI build.\n\nWhen artifact repositories are left unmaintained for a long period of time, vulnerabilities may emerge. Theoretically, this could allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\n\n## Recommendation\nAlways use the canonical repository for resolving your dependencies.\n\n\n## Example\nThe following example shows locations in a Maven POM file where artifact repository upload/download is configured. The use of Bintray in any of these locations is not advised.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Bintray Usage\n    An example of using bintray to download and upload dependencies\n\n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n        \n            jcenter-snapshots\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://dl.bintray.com/groovy/maven\n        \n    \n    \n        \n            jcenter-plugins\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n\n\n```\n\n## References\n* JFrog blog: [ Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter ](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)\n* Common Weakness Enumeration: [CWE-1104](https://cwe.mitre.org/data/definitions/1104.html).\n",
+                  "text": "# Depending upon JCenter/Bintray as an artifact repository\n[Bintray and JCenter are shutting down on February 1st, 2022](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/). Relying upon repositories that are deprecated or scheduled to be shutdown can have unintended consequences; for example, artifacts being resolved from a different artifact server or a total failure of the CI build.\n\nWhen artifact repositories are left unmaintained for a long period of time, vulnerabilities may emerge. Theoretically, this could allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\n\n## Recommendation\nAlways use the canonical repository for resolving your dependencies.\n\n\n## Example\nThe following example shows locations in a Maven POM file where artifact repository upload/download is configured. The use of Bintray in any of these locations is not advised.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Bintray Usage\n    An example of using bintray to download and upload dependencies\n\n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n        \n            jcenter-snapshots\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://dl.bintray.com/groovy/maven\n        \n    \n    \n        \n            jcenter-plugins\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n\n\n```\n\n## References\n* JFrog blog: [ Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter ](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)\n* Common Weakness Enumeration: [CWE-1104](https://cwe.mitre.org/data/definitions/1104.html).\n"
+                },
+                "id": "java/maven/dependency-upon-bintray",
+                "name": "java/maven/dependency-upon-bintray",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-1104/MavenPomDependsOnBintray.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-1104",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Depending upon JCenter/Bintray as an artifact repository"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Non-HTTPS connections can be intercepted by third parties."
+                },
+                "help": {
+                  "markdown": "# Failure to use HTTPS or SFTP URL in Maven artifact upload/download\nUsing an insecure protocol like HTTP or FTP to download your dependencies leaves your Maven build vulnerable to a [Man in the Middle (MITM)](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). This can allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [Supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\nThis vulnerability has a [ CVSS v3.1 base score of 8.1/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1).\n\n\n## Recommendation\nAlways use HTTPS or SFTP to download artifacts from artifact servers.\n\n\n## Example\nThese examples show examples of locations in Maven POM files where artifact repository upload/download is configured. The first shows the use of HTTP, the second shows the use of HTTPS.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of insecure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Insecure Repository Snapshots\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Insecure Repository\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n    \n\n\n```\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of secure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Secure Repository Snapshots\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Secure Repository\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n    \n\n\n```\n\n## References\n* Research: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://medium.com/bugbountywriteup/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb?source=friends_link&sk=3c99970c55a899ad9ef41f126efcde0e)\n* Research: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Proof of Concept: [ mveytsman/dilettante ](https://github.com/mveytsman/dilettante)\n* Additional Gradle & Maven plugin: [ Announcing nohttp ](https://spring.io/blog/2019/06/10/announcing-nohttp)\n* Java Ecosystem Announcement: [ HTTP Decommission Artifact Server Announcements ](https://gist.github.com/JLLeitschuh/789e49e3d34092a005031a0a1880af99)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n",
+                  "text": "# Failure to use HTTPS or SFTP URL in Maven artifact upload/download\nUsing an insecure protocol like HTTP or FTP to download your dependencies leaves your Maven build vulnerable to a [Man in the Middle (MITM)](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). This can allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [Supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\nThis vulnerability has a [ CVSS v3.1 base score of 8.1/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1).\n\n\n## Recommendation\nAlways use HTTPS or SFTP to download artifacts from artifact servers.\n\n\n## Example\nThese examples show examples of locations in Maven POM files where artifact repository upload/download is configured. The first shows the use of HTTP, the second shows the use of HTTPS.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of insecure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Insecure Repository Snapshots\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Insecure Repository\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n    \n\n\n```\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of secure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Secure Repository Snapshots\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Secure Repository\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n    \n\n\n```\n\n## References\n* Research: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://medium.com/bugbountywriteup/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb?source=friends_link&sk=3c99970c55a899ad9ef41f126efcde0e)\n* Research: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Proof of Concept: [ mveytsman/dilettante ](https://github.com/mveytsman/dilettante)\n* Additional Gradle & Maven plugin: [ Announcing nohttp ](https://spring.io/blog/2019/06/10/announcing-nohttp)\n* Java Ecosystem Announcement: [ HTTP Decommission Artifact Server Announcements ](https://gist.github.com/JLLeitschuh/789e49e3d34092a005031a0a1880af99)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n"
+                },
+                "id": "java/maven/non-https-url",
+                "name": "java/maven/non-https-url",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-829/InsecureDependencyResolution.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-300",
+                    "external/cwe/cwe-319",
+                    "external/cwe/cwe-494",
+                    "external/cwe/cwe-829",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Failure to use HTTPS or SFTP URL in Maven artifact upload/download"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Failing to check the Json Web Token (JWT) signature may allow an attacker to forge their own tokens."
+                },
+                "help": {
+                  "markdown": "# Missing JWT signature check\nA JSON Web Token (JWT) consists of three parts: header, payload, and signature. The `io.jsonwebtoken.jjwt` library is one of many libraries used for working with JWTs. It offers different methods for parsing tokens like `parse`, `parseClaimsJws`, and `parsePlaintextJws`. The last two correctly verify that the JWT is properly signed. This is done by computing the signature of the combination of header and payload and comparing the locally computed signature with the signature part of the JWT.\n\nTherefore it is necessary to provide the `JwtParser` with a key that is used for signature validation. Unfortunately the `parse` method **accepts** a JWT whose signature is empty although a signing key has been set for the parser. This means that an attacker can create arbitrary JWTs that will be accepted if this method is used.\n\n\n## Recommendation\nAlways verify the signature by using either the `parseClaimsJws` and `parsePlaintextJws` methods or by overriding the `onPlaintextJws` or `onClaimsJws` of `JwtHandlerAdapter`.\n\n\n## Example\nThe following example shows four cases where a signing key is set for a parser. In the first 'BAD' case the `parse` method is used, which will not validate the signature. The second 'BAD' case uses a `JwtHandlerAdapter` where the `onPlaintextJwt` method is overriden, so it will not validate the signature. The third and fourth 'GOOD' cases use `parseClaimsJws` method or override the `onPlaintextJws` method.\n\n\n```java\npublic void badJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(token); // BAD: Does not verify the signature\n}\n\npublic void badJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jwt onPlaintextJwt(Jwt jwt) {\n                        return jwt;\n                    }\n                }); // BAD: The handler is called on an unverified JWT\n}\n\npublic void goodJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parseClaimsJws(token) // GOOD: Verify the signature\n                .getBody();\n}\n\npublic void goodJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jws onPlaintextJws(Jws jws) {\n                        return jws;\n                    }\n                }); // GOOD: The handler is called on a verified JWS\n}\n```\n\n## References\n* zofrex: [How I Found An alg=none JWT Vulnerability in the NHS Contact Tracing App](https://www.zofrex.com/blog/2020/10/20/alg-none-jwt-nhs-contact-tracing-app/).\n* Common Weakness Enumeration: [CWE-347](https://cwe.mitre.org/data/definitions/347.html).\n",
+                  "text": "# Missing JWT signature check\nA JSON Web Token (JWT) consists of three parts: header, payload, and signature. The `io.jsonwebtoken.jjwt` library is one of many libraries used for working with JWTs. It offers different methods for parsing tokens like `parse`, `parseClaimsJws`, and `parsePlaintextJws`. The last two correctly verify that the JWT is properly signed. This is done by computing the signature of the combination of header and payload and comparing the locally computed signature with the signature part of the JWT.\n\nTherefore it is necessary to provide the `JwtParser` with a key that is used for signature validation. Unfortunately the `parse` method **accepts** a JWT whose signature is empty although a signing key has been set for the parser. This means that an attacker can create arbitrary JWTs that will be accepted if this method is used.\n\n\n## Recommendation\nAlways verify the signature by using either the `parseClaimsJws` and `parsePlaintextJws` methods or by overriding the `onPlaintextJws` or `onClaimsJws` of `JwtHandlerAdapter`.\n\n\n## Example\nThe following example shows four cases where a signing key is set for a parser. In the first 'BAD' case the `parse` method is used, which will not validate the signature. The second 'BAD' case uses a `JwtHandlerAdapter` where the `onPlaintextJwt` method is overriden, so it will not validate the signature. The third and fourth 'GOOD' cases use `parseClaimsJws` method or override the `onPlaintextJws` method.\n\n\n```java\npublic void badJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(token); // BAD: Does not verify the signature\n}\n\npublic void badJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jwt onPlaintextJwt(Jwt jwt) {\n                        return jwt;\n                    }\n                }); // BAD: The handler is called on an unverified JWT\n}\n\npublic void goodJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parseClaimsJws(token) // GOOD: Verify the signature\n                .getBody();\n}\n\npublic void goodJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jws onPlaintextJws(Jws jws) {\n                        return jws;\n                    }\n                }); // GOOD: The handler is called on a verified JWS\n}\n```\n\n## References\n* zofrex: [How I Found An alg=none JWT Vulnerability in the NHS Contact Tracing App](https://www.zofrex.com/blog/2020/10/20/alg-none-jwt-nhs-contact-tracing-app/).\n* Common Weakness Enumeration: [CWE-347](https://cwe.mitre.org/data/definitions/347.html).\n"
+                },
+                "id": "java/missing-jwt-signature-check",
+                "name": "java/missing-jwt-signature-check",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-347",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Missing JWT signature check"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled MVEL expression may lead to remote code execution."
+                },
+                "help": {
+                  "markdown": "# Expression language injection (MVEL)\nMVEL is an expression language based on Java-syntax, which offers many features including invocation of methods available in the JVM. If a MVEL expression is built using attacker-controlled data, and then evaluated, then it may allow attackers to run arbitrary code.\n\n\n## Recommendation\nIncluding user input in a MVEL expression should be avoided.\n\n\n## Example\nIn the following sample, the first example uses untrusted data to build a MVEL expression and then runs it in the default context. In the second example, the untrusted data is validated with a custom method that checks that the expression does not contain unexpected code before evaluating it.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // BAD: the user-provided expression is directly evaluated\n    MVEL.eval(expression);\n  }\n}\n\npublic void safeEvaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // GOOD: the user-provided expression is validated before evaluation\n    validateExpression(expression);\n    MVEL.eval(expression);\n  }\n}\n\nprivate void validateExpression(String expression) {\n  // Validate that the expression does not contain unexpected code.\n  // For instance, this can be done with allow-lists or deny-lists of code patterns.\n}\n```\n\n## References\n* MVEL Documentation: [Language Guide for 2.0](http://mvel.documentnode.com/).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Expression language injection (MVEL)\nMVEL is an expression language based on Java-syntax, which offers many features including invocation of methods available in the JVM. If a MVEL expression is built using attacker-controlled data, and then evaluated, then it may allow attackers to run arbitrary code.\n\n\n## Recommendation\nIncluding user input in a MVEL expression should be avoided.\n\n\n## Example\nIn the following sample, the first example uses untrusted data to build a MVEL expression and then runs it in the default context. In the second example, the untrusted data is validated with a custom method that checks that the expression does not contain unexpected code before evaluating it.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // BAD: the user-provided expression is directly evaluated\n    MVEL.eval(expression);\n  }\n}\n\npublic void safeEvaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // GOOD: the user-provided expression is validated before evaluation\n    validateExpression(expression);\n    MVEL.eval(expression);\n  }\n}\n\nprivate void validateExpression(String expression) {\n  // Validate that the expression does not contain unexpected code.\n  // For instance, this can be done with allow-lists or deny-lists of code patterns.\n}\n```\n\n## References\n* MVEL Documentation: [Language Guide for 2.0](http://mvel.documentnode.com/).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/mvel-expression-injection",
+                "name": "java/mvel-expression-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/MvelInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Expression language injection (MVEL)"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Disabling HTTP header validation makes code vulnerable to attack by header splitting if user input is written directly to an HTTP header."
+                },
+                "help": {
+                  "markdown": "# Disabled Netty HTTP header validation\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-93](https://cwe.mitre.org/data/definitions/93.html).\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n",
+                  "text": "# Disabled Netty HTTP header validation\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-93](https://cwe.mitre.org/data/definitions/93.html).\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n"
+                },
+                "id": "java/netty-http-request-or-response-splitting",
+                "name": "java/netty-http-request-or-response-splitting",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-113",
+                    "external/cwe/cwe-93",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Disabled Netty HTTP header validation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of OGNL Expression Language statement with user-controlled input can lead to execution of arbitrary code."
+                },
+                "help": {
+                  "markdown": "# OGNL Expression Language statement with user-controlled input\nObject-Graph Navigation Language (OGNL) is an open-source Expression Language (EL) for Java. OGNL can create or change executable code, consequently it can introduce critical security flaws to any application that uses it. Evaluation of unvalidated expressions is a common flaw in OGNL. This exposes the properties of Java objects to modification by an attacker and may allow them to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to avoid evaluating untrusted ONGL expressions. If user-provided OGNL expressions must be evaluated, do this in a sandbox and validate the expressions before evaluation.\n\n\n## Example\nIn the following examples, the code accepts an OGNL expression from the user and evaluates it.\n\nIn the first example, the user-provided OGNL expression is parsed and evaluated.\n\nThe second example validates the expression and evaluates it inside a sandbox. You can add a sandbox by setting a system property, as shown in the example, or by adding `-Dognl.security.manager` to JVM arguments.\n\n\n```java\nimport ognl.Ognl;\nimport ognl.OgnlException;\n\npublic void evaluate(HttpServletRequest request, Object root) throws OgnlException {\n  String expression = request.getParameter(\"expression\");\n\n  // BAD: User provided expression is evaluated\n  Ognl.getValue(expression, root);\n  \n  // GOOD: The name is validated and expression is evaluated in sandbox\n  System.setProperty(\"ognl.security.manager\", \"\"); // Or add -Dognl.security.manager to JVM args\n  if (isValid(expression)) {\n    Ognl.getValue(expression, root);\n  } else {\n    // Reject the request\n  }\n}\n\npublic void isValid(Strig expression) {\n  // Custom method to validate the expression.\n  // For instance, make sure it doesn't include unexpected code.\n}\n\n```\n\n## References\n* Apache Commons: [Apache Commons OGNL](https://commons.apache.org/proper/commons-ognl/).\n* Struts security: [Proactively protect from OGNL Expression Injections attacks](https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable).\n* Common Weakness Enumeration: [CWE-917](https://cwe.mitre.org/data/definitions/917.html).\n",
+                  "text": "# OGNL Expression Language statement with user-controlled input\nObject-Graph Navigation Language (OGNL) is an open-source Expression Language (EL) for Java. OGNL can create or change executable code, consequently it can introduce critical security flaws to any application that uses it. Evaluation of unvalidated expressions is a common flaw in OGNL. This exposes the properties of Java objects to modification by an attacker and may allow them to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to avoid evaluating untrusted ONGL expressions. If user-provided OGNL expressions must be evaluated, do this in a sandbox and validate the expressions before evaluation.\n\n\n## Example\nIn the following examples, the code accepts an OGNL expression from the user and evaluates it.\n\nIn the first example, the user-provided OGNL expression is parsed and evaluated.\n\nThe second example validates the expression and evaluates it inside a sandbox. You can add a sandbox by setting a system property, as shown in the example, or by adding `-Dognl.security.manager` to JVM arguments.\n\n\n```java\nimport ognl.Ognl;\nimport ognl.OgnlException;\n\npublic void evaluate(HttpServletRequest request, Object root) throws OgnlException {\n  String expression = request.getParameter(\"expression\");\n\n  // BAD: User provided expression is evaluated\n  Ognl.getValue(expression, root);\n  \n  // GOOD: The name is validated and expression is evaluated in sandbox\n  System.setProperty(\"ognl.security.manager\", \"\"); // Or add -Dognl.security.manager to JVM args\n  if (isValid(expression)) {\n    Ognl.getValue(expression, root);\n  } else {\n    // Reject the request\n  }\n}\n\npublic void isValid(Strig expression) {\n  // Custom method to validate the expression.\n  // For instance, make sure it doesn't include unexpected code.\n}\n\n```\n\n## References\n* Apache Commons: [Apache Commons OGNL](https://commons.apache.org/proper/commons-ognl/).\n* Struts security: [Proactively protect from OGNL Expression Injections attacks](https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable).\n* Common Weakness Enumeration: [CWE-917](https://cwe.mitre.org/data/definitions/917.html).\n"
+                },
+                "id": "java/ognl-injection",
+                "name": "java/ognl-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-917/OgnlInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-917",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "OGNL Expression Language statement with user-controlled input"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Overly permissive regular expression ranges match a wider range of characters than intended. This may allow an attacker to bypass a filter or sanitizer."
+                },
+                "help": {
+                  "markdown": "# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```java\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-f]{6}\", color);\n    }\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-F]{6}\", color);\n    }\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n",
+                  "text": "# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```java\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-f]{6}\", color);\n    }\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-F]{6}\", color);\n    }\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"
+                },
+                "id": "java/overly-large-range",
+                "name": "java/overly-large-range",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-020/OverlyLargeRange.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "correctness",
+                    "external/cwe/cwe-020",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Overly permissive regular expression range"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A prefix used to check that a canonicalised path falls within another must be slash-terminated."
+                },
+                "help": {
+                  "markdown": "# Partial path traversal vulnerability\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow access to siblings of `DIR`.\n\nSee also `java/partial-path-traversal-from-remote`, which is similar to this query but only flags instances with evidence of remote exploitability.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n",
+                  "text": "# Partial path traversal vulnerability\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow access to siblings of `DIR`.\n\nSee also `java/partial-path-traversal-from-remote`, which is similar to this query but only flags instances with evidence of remote exploitability.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n"
+                },
+                "id": "java/partial-path-traversal",
+                "name": "java/partial-path-traversal",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-023/PartialPathTraversal.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-023",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Partial path traversal vulnerability"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A prefix used to check that a canonicalised path falls within another must be slash-terminated."
+                },
+                "help": {
+                  "markdown": "# Partial path traversal vulnerability from remote\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow accessing siblings of `DIR`.\n\nSee also `java/partial-path-traversal`, which is similar to this query, but may also flag non-remotely-exploitable instances of partial path traversal vulnerabilities.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n",
+                  "text": "# Partial path traversal vulnerability from remote\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow accessing siblings of `DIR`.\n\nSee also `java/partial-path-traversal`, which is similar to this query, but may also flag non-remotely-exploitable instances of partial path traversal vulnerabilities.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n"
+                },
+                "id": "java/partial-path-traversal-from-remote",
+                "name": "java/partial-path-traversal-from-remote",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-023/PartialPathTraversalFromRemote.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-023",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Partial path traversal vulnerability from remote"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Accessing paths influenced by users can allow an attacker to access unexpected resources."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled data used in path expression\nAccessing paths controlled by users can allow an attacker to access unexpected resources. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nPaths that are naively constructed from data controlled by a user may be absolute paths, or may contain unexpected special characters such as \"..\". Such a path could point anywhere on the file system.\n\n\n## Recommendation\nValidate user input before using it to construct a file path.\n\nCommon validation methods include checking that the normalized path is relative and does not contain any \"..\" components, or checking that the path is contained within a safe folder. The method you should use depends on how the path is used in the application, and whether the path should be a single path component.\n\nIf the path should be a single path component (such as a file name), you can check for the existence of any path separators (\"/\" or \"\\\\\"), or \"..\" sequences in the input, and reject the input if any are found.\n\nNote that removing \"../\" sequences is *not* sufficient, since the input could still contain a path separator followed by \"..\". For example, the input \".../...//\" would still result in the string \"../\" if only \"../\" sequences are removed.\n\nFinally, the simplest (but most restrictive) option is to use an allow list of safe patterns and make sure that the user input matches one of these patterns.\n\n\n## Example\nIn this example, a file name is read from a `java.net.Socket` and then used to access a file and send it back over the socket. However, a malicious user could enter a file name anywhere on the file system, such as \"/etc/passwd\" or \"../../../etc/passwd\".\n\n\n```java\npublic void sendUserFile(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// BAD: read from a file without checking its path\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n\n```\nIf the input should only be a file name, you can check that it doesn't contain any path separators or \"..\" sequences.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// GOOD: ensure that the filename has no path separators or parent directory references\n\tif (filename.contains(\"..\") || filename.contains(\"/\") || filename.contains(\"\\\\\")) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\t\n}\n\n```\nIf the input should be within a specific directory, you can check that the resolved path is still contained within that directory.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\n\tPath publicFolder = Paths.get(\"/home/\" + user + \"/public\").normalize().toAbsolutePath();\n\tPath filePath = publicFolder.resolve(filename).normalize().toAbsolutePath();\n\n\t// GOOD: ensure that the path stays within the public folder\n\tif (!filePath.startsWith(publicFolder + File.separator)) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filePath.toString()));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n```\n\n## References\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-36](https://cwe.mitre.org/data/definitions/36.html).\n* Common Weakness Enumeration: [CWE-73](https://cwe.mitre.org/data/definitions/73.html).\n",
+                  "text": "# Uncontrolled data used in path expression\nAccessing paths controlled by users can allow an attacker to access unexpected resources. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nPaths that are naively constructed from data controlled by a user may be absolute paths, or may contain unexpected special characters such as \"..\". Such a path could point anywhere on the file system.\n\n\n## Recommendation\nValidate user input before using it to construct a file path.\n\nCommon validation methods include checking that the normalized path is relative and does not contain any \"..\" components, or checking that the path is contained within a safe folder. The method you should use depends on how the path is used in the application, and whether the path should be a single path component.\n\nIf the path should be a single path component (such as a file name), you can check for the existence of any path separators (\"/\" or \"\\\\\"), or \"..\" sequences in the input, and reject the input if any are found.\n\nNote that removing \"../\" sequences is *not* sufficient, since the input could still contain a path separator followed by \"..\". For example, the input \".../...//\" would still result in the string \"../\" if only \"../\" sequences are removed.\n\nFinally, the simplest (but most restrictive) option is to use an allow list of safe patterns and make sure that the user input matches one of these patterns.\n\n\n## Example\nIn this example, a file name is read from a `java.net.Socket` and then used to access a file and send it back over the socket. However, a malicious user could enter a file name anywhere on the file system, such as \"/etc/passwd\" or \"../../../etc/passwd\".\n\n\n```java\npublic void sendUserFile(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// BAD: read from a file without checking its path\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n\n```\nIf the input should only be a file name, you can check that it doesn't contain any path separators or \"..\" sequences.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// GOOD: ensure that the filename has no path separators or parent directory references\n\tif (filename.contains(\"..\") || filename.contains(\"/\") || filename.contains(\"\\\\\")) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\t\n}\n\n```\nIf the input should be within a specific directory, you can check that the resolved path is still contained within that directory.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\n\tPath publicFolder = Paths.get(\"/home/\" + user + \"/public\").normalize().toAbsolutePath();\n\tPath filePath = publicFolder.resolve(filename).normalize().toAbsolutePath();\n\n\t// GOOD: ensure that the path stays within the public folder\n\tif (!filePath.startsWith(publicFolder + File.separator)) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filePath.toString()));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n```\n\n## References\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-36](https://cwe.mitre.org/data/definitions/36.html).\n* Common Weakness Enumeration: [CWE-73](https://cwe.mitre.org/data/definitions/73.html).\n"
+                },
+                "id": "java/path-injection",
+                "name": "java/path-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-022",
+                    "external/cwe/cwe-023",
+                    "external/cwe/cwe-036",
+                    "external/cwe/cwe-073",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled data used in path expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A regular expression that can require polynomial time to match may be vulnerable to denial-of-service attacks."
+                },
+                "help": {
+                  "markdown": "# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```java\n\nPattern.compile(\"^\\\\s+|\\\\s+$\").matcher(text).replaceAll(\"\") // BAD\n```\nThe sub-expression `\"\\\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`\"^\\\\s+|(? 1000) {\n    throw new IllegalArgumentException(\"Input too long\");\n}\n\nPattern.matches(\"^(\\\\+|-)?(\\\\d+|(\\\\d*\\\\.\\\\d*))?(E|e)?([-+])?(\\\\d+)?$\", str); \n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n",
+                  "text": "# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```java\n\nPattern.compile(\"^\\\\s+|\\\\s+$\").matcher(text).replaceAll(\"\") // BAD\n```\nThe sub-expression `\"\\\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`\"^\\\\s+|(? 1000) {\n    throw new IllegalArgumentException(\"Input too long\");\n}\n\nPattern.matches(\"^(\\\\+|-)?(\\\\d+|(\\\\d*\\\\.\\\\d*))?(E|e)?([-+])?(\\\\d+)?$\", str); \n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"
+                },
+                "id": "java/polynomial-redos",
+                "name": "java/polynomial-redos",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-730/PolynomialReDoS.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-1333",
+                    "external/cwe/cwe-400",
+                    "external/cwe/cwe-730",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Polynomial regular expression used on uncontrolled data"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Certain standard library routines are dangerous to call."
+                },
+                "help": {
+                  "markdown": "# Use of a potentially dangerous function\nThis rule finds calls to methods that are dangerous to use. Currently, it checks for calls to `Thread.stop`.\n\nStopping a thread with `Thread.stop` causes it to receive a `ThreadDeath` exception. That exception propagates up the stack, releasing all monitors that the thread was holding. In some cases the relevant code will be protected by catching the `ThreadDeath` exception and cleaning up, but because the exception can potentially be thrown from so very many locations, it is impractical to catch all such cases. As a result, calling `Thread.stop` is likely to result in corrupt data.\n\n\n## Recommendation\nThe best solution is usually to provide an alternate communication mechanism for the thread that might need to be interrupted early. For example, Oracle gives the following example of using a volatile variable to communicate whether the worker thread should exit:\n\n\n```java\nprivate volatile Thread blinker;\n\npublic void stop() {\n    blinker = null;\n}\n\npublic void run() {\n    Thread thisThread = Thread.currentThread();\n    while (blinker == thisThread) {\n        try {\n            Thread.sleep(interval);\n        } catch (InterruptedException e){\n        }\n        repaint();\n    }\n}\n\n```\nIt is also possible to use `Thread.interrupt` and to catch and handle `InterruptedException` when it occurs. However, it can be difficult to handle an `InterruptedException` everywhere it might occur; for example, the sample code above simply discards the exception rather than actually exiting the thread.\n\nAnother strategy is to use message passing, for example via a `BlockingQueue`. In addition to passing the worker thread its ordinary work via such a message queue, the worker can be asked to exit by a particular kind of message being sent on the queue.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [THI05-J. Do not use Thread.stop() to terminate threads](https://wiki.sei.cmu.edu/confluence/display/java/THI05-J.+Do+not+use+Thread.stop()+to+terminate+threads).\n* Java API Specification: [Java Thread Primitive Deprecation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/doc-files/threadPrimitiveDeprecation.html).\n* Java API Specification: [Thread.interrupt](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html#interrupt()), [BlockingQueue](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/BlockingQueue.html).\n* Common Weakness Enumeration: [CWE-676](https://cwe.mitre.org/data/definitions/676.html).\n",
+                  "text": "# Use of a potentially dangerous function\nThis rule finds calls to methods that are dangerous to use. Currently, it checks for calls to `Thread.stop`.\n\nStopping a thread with `Thread.stop` causes it to receive a `ThreadDeath` exception. That exception propagates up the stack, releasing all monitors that the thread was holding. In some cases the relevant code will be protected by catching the `ThreadDeath` exception and cleaning up, but because the exception can potentially be thrown from so very many locations, it is impractical to catch all such cases. As a result, calling `Thread.stop` is likely to result in corrupt data.\n\n\n## Recommendation\nThe best solution is usually to provide an alternate communication mechanism for the thread that might need to be interrupted early. For example, Oracle gives the following example of using a volatile variable to communicate whether the worker thread should exit:\n\n\n```java\nprivate volatile Thread blinker;\n\npublic void stop() {\n    blinker = null;\n}\n\npublic void run() {\n    Thread thisThread = Thread.currentThread();\n    while (blinker == thisThread) {\n        try {\n            Thread.sleep(interval);\n        } catch (InterruptedException e){\n        }\n        repaint();\n    }\n}\n\n```\nIt is also possible to use `Thread.interrupt` and to catch and handle `InterruptedException` when it occurs. However, it can be difficult to handle an `InterruptedException` everywhere it might occur; for example, the sample code above simply discards the exception rather than actually exiting the thread.\n\nAnother strategy is to use message passing, for example via a `BlockingQueue`. In addition to passing the worker thread its ordinary work via such a message queue, the worker can be asked to exit by a particular kind of message being sent on the queue.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [THI05-J. Do not use Thread.stop() to terminate threads](https://wiki.sei.cmu.edu/confluence/display/java/THI05-J.+Do+not+use+Thread.stop()+to+terminate+threads).\n* Java API Specification: [Java Thread Primitive Deprecation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/doc-files/threadPrimitiveDeprecation.html).\n* Java API Specification: [Thread.interrupt](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html#interrupt()), [BlockingQueue](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/BlockingQueue.html).\n* Common Weakness Enumeration: [CWE-676](https://cwe.mitre.org/data/definitions/676.html).\n"
+                },
+                "id": "java/potentially-dangerous-function",
+                "name": "java/potentially-dangerous-function",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-676/PotentiallyDangerousFunction.ql",
+                  "security-severity": "10",
+                  "tags": [
+                    "external/cwe/cwe-676",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a potentially dangerous function"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using broken or weak cryptographic algorithms can allow an attacker to compromise security."
+                },
+                "help": {
+                  "markdown": "# Use of a potentially broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n",
+                  "text": "# Use of a potentially broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n"
+                },
+                "id": "java/potentially-weak-cryptographic-algorithm",
+                "name": "java/potentially-weak-cryptographic-algorithm",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-327/MaybeBrokenCryptoAlgorithm.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-327",
+                    "external/cwe/cwe-328",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a potentially broken or risky cryptographic algorithm"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a predictable seed in a pseudo-random number generator can lead to predictability of the numbers generated by it."
+                },
+                "help": {
+                  "markdown": "# Use of a predictable seed in a secure random number generator\nUsing a predictable seed in a pseudo-random number generator can lead to predictability of the numbers generated by it.\n\n\n## Recommendation\nIf the predictability of the pseudo-random number generator does not matter then consider using the faster `Random` class from `java.util`. If it is important that the pseudo-random number generator produces completely unpredictable values then either let the generator securely seed itself by not specifying a seed or specify a randomly generated, unpredictable seed.\n\n\n## Example\nIn the first example shown here, a constant value is used as a seed. Depending on the implementation of ` SecureRandom`, this could lead to the same random number being generated each time the code is executed.\n\nIn the second example shown here, the system time is used as a seed. Depending on the implementation of ` SecureRandom`, if an attacker knows what time the code was run, they could predict the generated random number.\n\nIn the third example shown here, the random number generator is allowed to generate its own seed, which it will do in a secure way.\n\n\n```java\nSecureRandom prng = new SecureRandom();\nint randomData = 0;\n\n// BAD: Using a constant value as a seed for a random number generator means all numbers it generates are predictable.\nprng.setSeed(12345L);\nrandomData = prng.next(32);\n\n// BAD: System.currentTimeMillis() returns the system time which is predictable.\nprng.setSeed(System.currentTimeMillis());\nrandomData = prng.next(32);\n\n// GOOD: SecureRandom implementations seed themselves securely by default.\nprng = new SecureRandom();\nrandomData = prng.next(32);\n\n```\n\n## References\n* Common Weakness Enumeration: [CWE-335](https://cwe.mitre.org/data/definitions/335.html).\n* Common Weakness Enumeration: [CWE-337](https://cwe.mitre.org/data/definitions/337.html).\n",
+                  "text": "# Use of a predictable seed in a secure random number generator\nUsing a predictable seed in a pseudo-random number generator can lead to predictability of the numbers generated by it.\n\n\n## Recommendation\nIf the predictability of the pseudo-random number generator does not matter then consider using the faster `Random` class from `java.util`. If it is important that the pseudo-random number generator produces completely unpredictable values then either let the generator securely seed itself by not specifying a seed or specify a randomly generated, unpredictable seed.\n\n\n## Example\nIn the first example shown here, a constant value is used as a seed. Depending on the implementation of ` SecureRandom`, this could lead to the same random number being generated each time the code is executed.\n\nIn the second example shown here, the system time is used as a seed. Depending on the implementation of ` SecureRandom`, if an attacker knows what time the code was run, they could predict the generated random number.\n\nIn the third example shown here, the random number generator is allowed to generate its own seed, which it will do in a secure way.\n\n\n```java\nSecureRandom prng = new SecureRandom();\nint randomData = 0;\n\n// BAD: Using a constant value as a seed for a random number generator means all numbers it generates are predictable.\nprng.setSeed(12345L);\nrandomData = prng.next(32);\n\n// BAD: System.currentTimeMillis() returns the system time which is predictable.\nprng.setSeed(System.currentTimeMillis());\nrandomData = prng.next(32);\n\n// GOOD: SecureRandom implementations seed themselves securely by default.\nprng = new SecureRandom();\nrandomData = prng.next(32);\n\n```\n\n## References\n* Common Weakness Enumeration: [CWE-335](https://cwe.mitre.org/data/definitions/335.html).\n* Common Weakness Enumeration: [CWE-337](https://cwe.mitre.org/data/definitions/337.html).\n"
+                },
+                "id": "java/predictable-seed",
+                "name": "java/predictable-seed",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-335/PredictableSeed.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-335",
+                    "external/cwe/cwe-337",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a predictable seed in a secure random number generator"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A regular expression that requires exponential time to match certain inputs can be a performance bottleneck, and may be vulnerable to denial-of-service attacks."
+                },
+                "help": {
+                  "markdown": "# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this regular expression:\n\n```java\n\n^_(__|.)+_$\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```java\n\n^_(__|[^_])+_$\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n",
+                  "text": "# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this regular expression:\n\n```java\n\n^_(__|.)+_$\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```java\n\n^_(__|[^_])+_$\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"
+                },
+                "id": "java/redos",
+                "name": "java/redos",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-730/ReDoS.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-1333",
+                    "external/cwe/cwe-400",
+                    "external/cwe/cwe-730",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Inefficient regular expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "User input should not be used in regular expressions without first being escaped, otherwise a malicious user may be able to provide a regex that could require exponential time on certain inputs."
+                },
+                "help": {
+                  "markdown": "# Regular expression injection\nConstructing a regular expression with unsanitized user input is dangerous as a malicious user may be able to modify the meaning of the expression. In particular, such a user may be able to provide a regular expression fragment that takes exponential time in the worst case, and use that to perform a Denial of Service attack.\n\n\n## Recommendation\nBefore embedding user input into a regular expression, use a sanitization function such as `Pattern.quote` to escape meta-characters that have special meaning.\n\n\n## Example\nThe following example shows an HTTP request parameter that is used to construct a regular expression.\n\nIn the first case the user-provided regex is not escaped. If a malicious user provides a regex whose worst-case performance is exponential, then this could lead to a Denial of Service.\n\nIn the second case, the user input is escaped using `Pattern.quote` before being included in the regular expression. This ensures that the user cannot insert characters which have a special meaning in regular expressions.\n\n\n```java\nimport java.util.regex.Pattern;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\n\npublic class RegexInjectionDemo extends HttpServlet {\n\n  public boolean badExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // BAD: Unsanitized user input is used to construct a regular expression\n    return input.matches(regex);\n  }\n\n  public boolean goodExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // GOOD: User input is sanitized before constructing the regex\n    return input.matches(Pattern.quote(regex));\n  }\n}\n\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Java API Specification: [Pattern.quote](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html#quote(java.lang.String)).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n",
+                  "text": "# Regular expression injection\nConstructing a regular expression with unsanitized user input is dangerous as a malicious user may be able to modify the meaning of the expression. In particular, such a user may be able to provide a regular expression fragment that takes exponential time in the worst case, and use that to perform a Denial of Service attack.\n\n\n## Recommendation\nBefore embedding user input into a regular expression, use a sanitization function such as `Pattern.quote` to escape meta-characters that have special meaning.\n\n\n## Example\nThe following example shows an HTTP request parameter that is used to construct a regular expression.\n\nIn the first case the user-provided regex is not escaped. If a malicious user provides a regex whose worst-case performance is exponential, then this could lead to a Denial of Service.\n\nIn the second case, the user input is escaped using `Pattern.quote` before being included in the regular expression. This ensures that the user cannot insert characters which have a special meaning in regular expressions.\n\n\n```java\nimport java.util.regex.Pattern;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\n\npublic class RegexInjectionDemo extends HttpServlet {\n\n  public boolean badExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // BAD: Unsanitized user input is used to construct a regular expression\n    return input.matches(regex);\n  }\n\n  public boolean goodExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // GOOD: User input is sanitized before constructing the regex\n    return input.matches(Pattern.quote(regex));\n  }\n}\n\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Java API Specification: [Pattern.quote](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html#quote(java.lang.String)).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"
+                },
+                "id": "java/regex-injection",
+                "name": "java/regex-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-730/RegexInjection.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-400",
+                    "external/cwe/cwe-730",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Regular expression injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Executing a command with a relative path is vulnerable to malicious changes in the PATH environment variable."
+                },
+                "help": {
+                  "markdown": "# Executing a command with a relative path\nWhen a command is executed with a relative path, the runtime uses the PATH environment variable to find which executable to run. Therefore, any user who can change the PATH environment variable can cause the software to run a different, malicious executable.\n\n\n## Recommendation\nIn most cases, simply use a command that has an absolute path instead of a relative path.\n\nIn some cases, the location of the executable might be different on different installations. In such cases, consider specifying the location of key executables with some form of configuration. When using this approach, be careful that the configuration system is not itself vulnerable to malicious modifications.\n\n\n## Example\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: relative path\n        Runtime.getRuntime().exec(\"make\");\n        \n        // GOOD: absolute path\n        Runtime.getRuntime().exec(\"/usr/bin/make\");\n\n        // GOOD: build an absolute path from known values\n        Runtime.getRuntime().exec(Paths.MAKE_PREFIX + \"/bin/make\");\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n",
+                  "text": "# Executing a command with a relative path\nWhen a command is executed with a relative path, the runtime uses the PATH environment variable to find which executable to run. Therefore, any user who can change the PATH environment variable can cause the software to run a different, malicious executable.\n\n\n## Recommendation\nIn most cases, simply use a command that has an absolute path instead of a relative path.\n\nIn some cases, the location of the executable might be different on different installations. In such cases, consider specifying the location of key executables with some form of configuration. When using this approach, be careful that the configuration system is not itself vulnerable to malicious modifications.\n\n\n## Example\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: relative path\n        Runtime.getRuntime().exec(\"make\");\n        \n        // GOOD: absolute path\n        Runtime.getRuntime().exec(\"/usr/bin/make\");\n\n        // GOOD: build an absolute path from known values\n        Runtime.getRuntime().exec(Paths.MAKE_PREFIX + \"/bin/make\");\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n"
+                },
+                "id": "java/relative-path-command",
+                "name": "java/relative-path-command",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecRelative.ql",
+                  "security-severity": "5.4",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Executing a command with a relative path"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using RSA encryption without OAEP padding can result in a padding oracle attack, leading to a weaker encryption."
+                },
+                "help": {
+                  "markdown": "# Use of RSA algorithm without OAEP\nCryptographic algorithms often use padding schemes to make the plaintext less predictable. The OAEP (Optimal Asymmetric Encryption Padding) scheme should be used with RSA encryption. Using an outdated padding scheme such as PKCS1, or no padding at all, can weaken the encryption by making it vulnerable to a padding oracle attack.\n\n\n## Recommendation\nUse the OAEP scheme when using RSA encryption.\n\n\n## Example\nIn the following example, the BAD case shows no padding being used, whereas the GOOD case shows an OAEP scheme being used.\n\n\n```java\n// BAD: No padding scheme is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/NoPadding\");\n...\n\n//GOOD: OAEP padding is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/OAEPWithSHA-1AndMGF1Padding\");\n...\n```\n\n## References\n* [Mobile Security Testing Guide](https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#padding-oracle-attacks-due-to-weaker-padding-or-block-operation-implementations).\n* [The Padding Oracle Attack](https://robertheaton.com/2013/07/29/padding-oracle-attack/).\n* Common Weakness Enumeration: [CWE-780](https://cwe.mitre.org/data/definitions/780.html).\n",
+                  "text": "# Use of RSA algorithm without OAEP\nCryptographic algorithms often use padding schemes to make the plaintext less predictable. The OAEP (Optimal Asymmetric Encryption Padding) scheme should be used with RSA encryption. Using an outdated padding scheme such as PKCS1, or no padding at all, can weaken the encryption by making it vulnerable to a padding oracle attack.\n\n\n## Recommendation\nUse the OAEP scheme when using RSA encryption.\n\n\n## Example\nIn the following example, the BAD case shows no padding being used, whereas the GOOD case shows an OAEP scheme being used.\n\n\n```java\n// BAD: No padding scheme is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/NoPadding\");\n...\n\n//GOOD: OAEP padding is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/OAEPWithSHA-1AndMGF1Padding\");\n...\n```\n\n## References\n* [Mobile Security Testing Guide](https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#padding-oracle-attacks-due-to-weaker-padding-or-block-operation-implementations).\n* [The Padding Oracle Attack](https://robertheaton.com/2013/07/29/padding-oracle-attack/).\n* Common Weakness Enumeration: [CWE-780](https://cwe.mitre.org/data/definitions/780.html).\n"
+                },
+                "id": "java/rsa-without-oaep",
+                "name": "java/rsa-without-oaep",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-780/RsaWithoutOaep.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-780",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of RSA algorithm without OAEP"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Writing sensitive information to log files can allow that information to be leaked to an attacker more easily."
+                },
+                "help": {
+                  "markdown": "# Insertion of sensitive information into log files\nInformation written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information. Third-party logging utilities like Log4J and SLF4J are widely used in Java projects. When sensitive information is written to logs without properly set logging levels, it is accessible to potential attackers who can use it to gain access to file storage.\n\n\n## Recommendation\nDo not write secrets into the log files and enforce proper logging level control.\n\n\n## Example\nThe following example shows two ways of logging sensitive information. In the 'BAD' case, the credentials are simply written to a debug log. In the 'GOOD' case, the credentials are never written to debug logs.\n\n\n```java\npublic static void main(String[] args) {\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n\n        String password = \"Pass@0rd\";\n\n        // BAD: user password is written to debug log\n        logger.debug(\"User password is \"+password);\n    }\n\t\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n  \n        String password = \"Pass@0rd\";\n\n        // GOOD: user password is never written to debug log\n        logger.debug(\"User password changed\")\n    }\n}\n\n```\n\n## References\n* [OWASP Logging Guide](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html)\n* Common Weakness Enumeration: [CWE-532](https://cwe.mitre.org/data/definitions/532.html).\n",
+                  "text": "# Insertion of sensitive information into log files\nInformation written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information. Third-party logging utilities like Log4J and SLF4J are widely used in Java projects. When sensitive information is written to logs without properly set logging levels, it is accessible to potential attackers who can use it to gain access to file storage.\n\n\n## Recommendation\nDo not write secrets into the log files and enforce proper logging level control.\n\n\n## Example\nThe following example shows two ways of logging sensitive information. In the 'BAD' case, the credentials are simply written to a debug log. In the 'GOOD' case, the credentials are never written to debug logs.\n\n\n```java\npublic static void main(String[] args) {\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n\n        String password = \"Pass@0rd\";\n\n        // BAD: user password is written to debug log\n        logger.debug(\"User password is \"+password);\n    }\n\t\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n  \n        String password = \"Pass@0rd\";\n\n        // GOOD: user password is never written to debug log\n        logger.debug(\"User password changed\")\n    }\n}\n\n```\n\n## References\n* [OWASP Logging Guide](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html)\n* Common Weakness Enumeration: [CWE-532](https://cwe.mitre.org/data/definitions/532.html).\n"
+                },
+                "id": "java/sensitive-log",
+                "name": "java/sensitive-log",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-532/SensitiveInfoLog.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-532",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insertion of sensitive information into log files"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Untrusted input interpreted as a template can lead to remote code execution."
+                },
+                "help": {
+                  "markdown": "# Server-side template injection\nTemplate injection occurs when user input is embedded in a template's code in an unsafe manner. An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side. This permits the attacker to run arbitrary code in the server's context.\n\n\n## Recommendation\nTo fix this, ensure that untrusted input is not used as part of a template's code. If the application requirements do not allow this, use a sandboxed environment where access to unsafe attributes and methods is prohibited.\n\n\n## Example\nIn the example given below, an untrusted HTTP parameter `code` is used as a Velocity template string. This can lead to remote code execution.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"bad\")\n\tpublic void bad(HttpServletRequest request) {\n\t\tVelocity.init();\n\n\t\tString code = request.getParameter(\"code\");\n\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tStringWriter w = new StringWriter();\n\t\t// evaluate( Context context, Writer out, String logTag, String instring )\n\t\tVelocity.evaluate(context, w, \"mystring\", code);\n\t}\n}\n\n```\nIn the next example, the problem is avoided by using a fixed template string `s`. Since the template's code is not attacker-controlled in this case, this solution prevents the execution of untrusted code.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"good\")\n\tpublic void good(HttpServletRequest request) {\n\t\tVelocity.init();\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tString s = \"We are using $project $name to render this.\";\n\t\tStringWriter w = new StringWriter();\n\t\tVelocity.evaluate(context, w, \"mystring\", s);\n\t\tSystem.out.println(\" string : \" + w);\n\t}\n}\n\n```\n\n## References\n* Portswigger: [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-1336](https://cwe.mitre.org/data/definitions/1336.html).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Server-side template injection\nTemplate injection occurs when user input is embedded in a template's code in an unsafe manner. An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side. This permits the attacker to run arbitrary code in the server's context.\n\n\n## Recommendation\nTo fix this, ensure that untrusted input is not used as part of a template's code. If the application requirements do not allow this, use a sandboxed environment where access to unsafe attributes and methods is prohibited.\n\n\n## Example\nIn the example given below, an untrusted HTTP parameter `code` is used as a Velocity template string. This can lead to remote code execution.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"bad\")\n\tpublic void bad(HttpServletRequest request) {\n\t\tVelocity.init();\n\n\t\tString code = request.getParameter(\"code\");\n\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tStringWriter w = new StringWriter();\n\t\t// evaluate( Context context, Writer out, String logTag, String instring )\n\t\tVelocity.evaluate(context, w, \"mystring\", code);\n\t}\n}\n\n```\nIn the next example, the problem is avoided by using a fixed template string `s`. Since the template's code is not attacker-controlled in this case, this solution prevents the execution of untrusted code.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"good\")\n\tpublic void good(HttpServletRequest request) {\n\t\tVelocity.init();\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tString s = \"We are using $project $name to render this.\";\n\t\tStringWriter w = new StringWriter();\n\t\tVelocity.evaluate(context, w, \"mystring\", s);\n\t\tSystem.out.println(\" string : \" + w);\n\t}\n}\n\n```\n\n## References\n* Portswigger: [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-1336](https://cwe.mitre.org/data/definitions/1336.html).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/server-side-template-injection",
+                "name": "java/server-side-template-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/TemplateInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "external/cwe/cwe-1336",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Server-side template injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Opening a socket after authenticating via a different channel may allow an attacker to connect to the port first."
+                },
+                "help": {
+                  "markdown": "# Race condition in socket authentication\nA common pattern is to have a channel of communication open with a user, and then to open another channel, for example to transfer data. However, if user authentication is done over the original channel rather than the alternate channel, then an attacker may be able to connect to the alternate channel before the legitimate user does. This allows the attacker to impersonate the user by \"piggybacking\" on any previous authentication.\n\n\n## Recommendation\nWhen opening an alternate channel for an authenticated user (for example, a Java `Socket`), always authenticate the user over the new channel.\n\n\n## Example\nThis example shows two ways of opening a connection for a user. In the first example, authentication is determined based on materials that the user has already provided (for example, their username and/or password), and then a new channel is opened. However, no authentication is done over the new channel, and so an attacker could connect to it before the user connects.\n\nIn the second example, authentication is done over the socket channel itself, which verifies that the newly connected user is in fact the user that was expected.\n\n\n```java\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tif (isAuthenticated(username)) {\n\t\tSocket connection1 = listenSocket.accept();\n\t\t// BAD: no authentication over the socket connection\n\t\tconnection1.getOutputStream().write(secretData);\n\t}\n}\n\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tSocket connection2 = listenSocket.accept();\n\t// GOOD: authentication happens over the socket\n\tif (doAuthenticate(connection2, username)) {\n\t\tconnection2.getOutputStream().write(secretData);\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-421](https://cwe.mitre.org/data/definitions/421.html).\n",
+                  "text": "# Race condition in socket authentication\nA common pattern is to have a channel of communication open with a user, and then to open another channel, for example to transfer data. However, if user authentication is done over the original channel rather than the alternate channel, then an attacker may be able to connect to the alternate channel before the legitimate user does. This allows the attacker to impersonate the user by \"piggybacking\" on any previous authentication.\n\n\n## Recommendation\nWhen opening an alternate channel for an authenticated user (for example, a Java `Socket`), always authenticate the user over the new channel.\n\n\n## Example\nThis example shows two ways of opening a connection for a user. In the first example, authentication is determined based on materials that the user has already provided (for example, their username and/or password), and then a new channel is opened. However, no authentication is done over the new channel, and so an attacker could connect to it before the user connects.\n\nIn the second example, authentication is done over the socket channel itself, which verifies that the newly connected user is in fact the user that was expected.\n\n\n```java\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tif (isAuthenticated(username)) {\n\t\tSocket connection1 = listenSocket.accept();\n\t\t// BAD: no authentication over the socket connection\n\t\tconnection1.getOutputStream().write(secretData);\n\t}\n}\n\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tSocket connection2 = listenSocket.accept();\n\t// GOOD: authentication happens over the socket\n\tif (doAuthenticate(connection2, username)) {\n\t\tconnection2.getOutputStream().write(secretData);\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-421](https://cwe.mitre.org/data/definitions/421.html).\n"
+                },
+                "id": "java/socket-auth-race-condition",
+                "name": "java/socket-auth-race-condition",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-421/SocketAuthRace.ql",
+                  "security-severity": "7.2",
+                  "tags": [
+                    "external/cwe/cwe-421",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Race condition in socket authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled Spring Expression Language (SpEL) expression may lead to remote code execution."
+                },
+                "help": {
+                  "markdown": "# Expression language injection (Spring)\nThe Spring Expression Language (SpEL) is a powerful expression language provided by the Spring Framework. The language offers many features including invocation of methods available in the JVM. If a SpEL expression is built using attacker-controlled data, and then evaluated in a powerful context, then it may allow the attacker to run arbitrary code.\n\nThe `SpelExpressionParser` class parses a SpEL expression string and returns an `Expression` instance that can be then evaluated by calling one of its methods. By default, an expression is evaluated in a powerful `StandardEvaluationContext` that allows the expression to access other methods available in the JVM.\n\n\n## Recommendation\nIn general, including user input in a SpEL expression should be avoided. If user input must be included in the expression, it should be then evaluated in a limited context that doesn't allow arbitrary method invocation.\n\n\n## Example\nThe following example uses untrusted data to build a SpEL expression and then runs it in the default powerful context.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    return expression.getValue();\n  }\n}\n```\nThe next example shows how an untrusted SpEL expression can be run in `SimpleEvaluationContext` that doesn't allow accessing arbitrary methods. However, it's recommended to avoid using untrusted input in SpEL expressions.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    SimpleEvaluationContext context \n        = SimpleEvaluationContext.forReadWriteDataBinding().build();\n    return expression.getValue(context);\n  }\n}\n```\n\n## References\n* Spring Framework Reference Documentation: [Spring Expression Language (SpEL)](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Expression language injection (Spring)\nThe Spring Expression Language (SpEL) is a powerful expression language provided by the Spring Framework. The language offers many features including invocation of methods available in the JVM. If a SpEL expression is built using attacker-controlled data, and then evaluated in a powerful context, then it may allow the attacker to run arbitrary code.\n\nThe `SpelExpressionParser` class parses a SpEL expression string and returns an `Expression` instance that can be then evaluated by calling one of its methods. By default, an expression is evaluated in a powerful `StandardEvaluationContext` that allows the expression to access other methods available in the JVM.\n\n\n## Recommendation\nIn general, including user input in a SpEL expression should be avoided. If user input must be included in the expression, it should be then evaluated in a limited context that doesn't allow arbitrary method invocation.\n\n\n## Example\nThe following example uses untrusted data to build a SpEL expression and then runs it in the default powerful context.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    return expression.getValue();\n  }\n}\n```\nThe next example shows how an untrusted SpEL expression can be run in `SimpleEvaluationContext` that doesn't allow accessing arbitrary methods. However, it's recommended to avoid using untrusted input in SpEL expressions.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    SimpleEvaluationContext context \n        = SimpleEvaluationContext.forReadWriteDataBinding().build();\n    return expression.getValue(context);\n  }\n}\n```\n\n## References\n* Spring Framework Reference Documentation: [Spring Expression Language (SpEL)](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/spel-expression-injection",
+                "name": "java/spel-expression-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/SpelInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Expression language injection (Spring)"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Disabling CSRF protection makes the application vulnerable to a Cross-Site Request Forgery (CSRF) attack."
+                },
+                "help": {
+                  "markdown": "# Disabled Spring CSRF protection\nWhen you set up a web server to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it is vulnerable to attack. An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.\n\n\n## Recommendation\nWhen you use Spring, Cross-Site Request Forgery (CSRF) protection is enabled by default. Spring's recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n\n\n## Example\nThe following example shows the Spring Java configuration with CSRF protection disabled. This type of configuration should only be used if you are creating a service that is used only by non-browser clients.\n\n\n```java\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n@EnableWebSecurity\n@Configuration\npublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {\n  @Override\n  protected void configure(HttpSecurity http) throws Exception {\n    http\n      .csrf(csrf ->\n        // BAD - CSRF protection shouldn't be disabled\n        csrf.disable() \n      );\n  }\n}\n\n```\n\n## References\n* OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n* Spring Security Reference: [ Cross Site Request Forgery (CSRF) ](https://docs.spring.io/spring-security/reference/servlet/exploits/csrf.html).\n* Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n",
+                  "text": "# Disabled Spring CSRF protection\nWhen you set up a web server to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it is vulnerable to attack. An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.\n\n\n## Recommendation\nWhen you use Spring, Cross-Site Request Forgery (CSRF) protection is enabled by default. Spring's recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n\n\n## Example\nThe following example shows the Spring Java configuration with CSRF protection disabled. This type of configuration should only be used if you are creating a service that is used only by non-browser clients.\n\n\n```java\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n@EnableWebSecurity\n@Configuration\npublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {\n  @Override\n  protected void configure(HttpSecurity http) throws Exception {\n    http\n      .csrf(csrf ->\n        // BAD - CSRF protection shouldn't be disabled\n        csrf.disable() \n      );\n  }\n}\n\n```\n\n## References\n* OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n* Spring Security Reference: [ Cross Site Request Forgery (CSRF) ](https://docs.spring.io/spring-security/reference/servlet/exploits/csrf.html).\n* Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n"
+                },
+                "id": "java/spring-disabled-csrf-protection",
+                "name": "java/spring-disabled-csrf-protection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-352/SpringCSRFProtection.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-352",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Disabled Spring CSRF protection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building a SQL or Java Persistence query from user-controlled sources is vulnerable to insertion of malicious code by the user."
+                },
+                "help": {
+                  "markdown": "# Query built from user-controlled sources\nIf a database query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious database queries. This applies to various database query languages, including SQL and the Java Persistence Query Language.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating an environment variable with some string literals. The environment variable can include special characters, so this code allows for SQL injection attacks.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the environment variable are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## Example\nThe following code shows several different ways to run a Java Persistence query.\n\nThe first example involves building a query, `query1`, by concatenating an environment variable with some string literals. Just like the SQL example, the environment variable can include special characters, so this code allows for Java Persistence query injection attacks.\n\nThe remaining examples demonstrate different methods for safely building a Java Persistence query with user-supplied values:\n\n1. `query2` uses a single string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `query3` uses a single string literal that includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\n1. `namedQuery1` is defined using the `@NamedQuery` annotation, whose `query` attribute is a string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `namedQuery2` is defined using the `@NamedQuery` annotation, whose `query` attribute includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\nThe parameter is then given a value by calling `setParameter`. These versions are immune to injection attacks, because any special characters in the environment variable or user-supplied value are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have Java Persistence Query Language special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT p FROM Product p WHERE p.category LIKE '\"\n        + category + \"' ORDER BY p.price\";\n    Query q = entityManager.createQuery(query1);\n}\n\n{\n    // GOOD: use a named parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\"\n    Query q = entityManager.createQuery(query2);\n    q.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a positional parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query3 = \"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\"\n    Query q = entityManager.createQuery(query3);\n    q.setParameter(1, category);\n}\n\n{\n    // GOOD: use a named query with a named parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery1 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery1.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a named query with a positional parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery2 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery2.setParameter(1, category);\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* The Java EE Tutorial: [The Java Persistence Query Language](https://docs.oracle.com/javaee/7/tutorial/persistence-querylanguage.htm).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n",
+                  "text": "# Query built from user-controlled sources\nIf a database query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious database queries. This applies to various database query languages, including SQL and the Java Persistence Query Language.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating an environment variable with some string literals. The environment variable can include special characters, so this code allows for SQL injection attacks.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the environment variable are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## Example\nThe following code shows several different ways to run a Java Persistence query.\n\nThe first example involves building a query, `query1`, by concatenating an environment variable with some string literals. Just like the SQL example, the environment variable can include special characters, so this code allows for Java Persistence query injection attacks.\n\nThe remaining examples demonstrate different methods for safely building a Java Persistence query with user-supplied values:\n\n1. `query2` uses a single string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `query3` uses a single string literal that includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\n1. `namedQuery1` is defined using the `@NamedQuery` annotation, whose `query` attribute is a string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `namedQuery2` is defined using the `@NamedQuery` annotation, whose `query` attribute includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\nThe parameter is then given a value by calling `setParameter`. These versions are immune to injection attacks, because any special characters in the environment variable or user-supplied value are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have Java Persistence Query Language special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT p FROM Product p WHERE p.category LIKE '\"\n        + category + \"' ORDER BY p.price\";\n    Query q = entityManager.createQuery(query1);\n}\n\n{\n    // GOOD: use a named parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\"\n    Query q = entityManager.createQuery(query2);\n    q.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a positional parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query3 = \"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\"\n    Query q = entityManager.createQuery(query3);\n    q.setParameter(1, category);\n}\n\n{\n    // GOOD: use a named query with a named parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery1 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery1.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a named query with a positional parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery2 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery2.setParameter(1, category);\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* The Java EE Tutorial: [The Java Persistence Query Language](https://docs.oracle.com/javaee/7/tutorial/persistence-querylanguage.htm).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n"
+                },
+                "id": "java/sql-injection",
+                "name": "java/sql-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-089/SqlTainted.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-089",
+                    "external/cwe/cwe-564",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Query built from user-controlled sources"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Making web requests based on unvalidated user-input may cause the server to communicate with malicious servers."
+                },
+                "help": {
+                  "markdown": "# Server-side request forgery\nDirectly incorporating user input into an HTTP request without validating the input can facilitate server-side request forgery (SSRF) attacks. In these attacks, the server may be tricked into making a request and interacting with an attacker-controlled server.\n\n\n## Recommendation\nTo guard against SSRF attacks, you should avoid putting user-provided input directly into a request URL. Instead, maintain a list of authorized URLs on the server; then choose from that list based on the input provided. Alternatively, ensure requests constructed from user input are limited to a particular host or more restrictive URL prefix.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly to form a new request without validating the input, which facilitates SSRF attacks. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\nimport java.net.http.HttpClient;\n\npublic class SSRF extends HttpServlet {\n\tprivate static final String VALID_URI = \"http://lgtm.com\";\n\tprivate HttpClient client = HttpClient.newHttpClient();\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\tthrows ServletException, IOException {\n\t\tURI uri = new URI(request.getParameter(\"uri\"));\n\t\t// BAD: a request parameter is incorporated without validation into a Http request\n\t\tHttpRequest r = HttpRequest.newBuilder(uri).build();\n\t\tclient.send(r, null);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_URI.equals(request.getParameter(\"uri\"))) {\n\t\t\tHttpRequest r2 = HttpRequest.newBuilder(uri).build();\n\t\t\tclient.send(r2, null);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* [OWASP SSRF](https://owasp.org/www-community/attacks/Server_Side_Request_Forgery)\n* Common Weakness Enumeration: [CWE-918](https://cwe.mitre.org/data/definitions/918.html).\n",
+                  "text": "# Server-side request forgery\nDirectly incorporating user input into an HTTP request without validating the input can facilitate server-side request forgery (SSRF) attacks. In these attacks, the server may be tricked into making a request and interacting with an attacker-controlled server.\n\n\n## Recommendation\nTo guard against SSRF attacks, you should avoid putting user-provided input directly into a request URL. Instead, maintain a list of authorized URLs on the server; then choose from that list based on the input provided. Alternatively, ensure requests constructed from user input are limited to a particular host or more restrictive URL prefix.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly to form a new request without validating the input, which facilitates SSRF attacks. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\nimport java.net.http.HttpClient;\n\npublic class SSRF extends HttpServlet {\n\tprivate static final String VALID_URI = \"http://lgtm.com\";\n\tprivate HttpClient client = HttpClient.newHttpClient();\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\tthrows ServletException, IOException {\n\t\tURI uri = new URI(request.getParameter(\"uri\"));\n\t\t// BAD: a request parameter is incorporated without validation into a Http request\n\t\tHttpRequest r = HttpRequest.newBuilder(uri).build();\n\t\tclient.send(r, null);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_URI.equals(request.getParameter(\"uri\"))) {\n\t\t\tHttpRequest r2 = HttpRequest.newBuilder(uri).build();\n\t\t\tclient.send(r2, null);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* [OWASP SSRF](https://owasp.org/www-community/attacks/Server_Side_Request_Forgery)\n* Common Weakness Enumeration: [CWE-918](https://cwe.mitre.org/data/definitions/918.html).\n"
+                },
+                "id": "java/ssrf",
+                "name": "java/ssrf",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-918/RequestForgery.ql",
+                  "security-severity": "9.1",
+                  "tags": [
+                    "external/cwe/cwe-918",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Server-side request forgery"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Information from a stack trace propagates to an external user. Stack traces can unintentionally reveal implementation details that are useful to an attacker for developing a subsequent exploit."
+                },
+                "help": {
+                  "markdown": "# Information exposure through a stack trace\nSoftware developers often add stack traces to error messages, as a debugging aid. Whenever that error message occurs for an end user, the developer can use the stack trace to help identify how to fix the problem. In particular, stack traces can tell the developer more about the sequence of events that led to a failure, as opposed to merely the final state of the software when the error occurred.\n\nUnfortunately, the same information can be useful to an attacker. The sequence of class names in a stack trace can reveal the structure of the application as well as any internal components it relies on.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the stack trace entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `sendError()` method. As such, the user is able to see a detailed stack trace, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a stack trace back to the response\n\t\tex.printStackTrace(response.getWriter());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the stack trace, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n* Common Weakness Enumeration: [CWE-497](https://cwe.mitre.org/data/definitions/497.html).\n",
+                  "text": "# Information exposure through a stack trace\nSoftware developers often add stack traces to error messages, as a debugging aid. Whenever that error message occurs for an end user, the developer can use the stack trace to help identify how to fix the problem. In particular, stack traces can tell the developer more about the sequence of events that led to a failure, as opposed to merely the final state of the software when the error occurred.\n\nUnfortunately, the same information can be useful to an attacker. The sequence of class names in a stack trace can reveal the structure of the application as well as any internal components it relies on.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the stack trace entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `sendError()` method. As such, the user is able to see a detailed stack trace, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a stack trace back to the response\n\t\tex.printStackTrace(response.getWriter());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the stack trace, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n* Common Weakness Enumeration: [CWE-497](https://cwe.mitre.org/data/definitions/497.html).\n"
+                },
+                "id": "java/stack-trace-exposure",
+                "name": "java/stack-trace-exposure",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-209/StackTraceExposure.ql",
+                  "security-severity": "5.4",
+                  "tags": [
+                    "external/cwe/cwe-209",
+                    "external/cwe/cwe-497",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Information exposure through a stack trace"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An initialization vector (IV) used for ciphers of certain modes (such as CBC or GCM) should be unique and unpredictable, to maximize encryption and prevent dictionary attacks."
+                },
+                "help": {
+                  "markdown": "# Using a static initialization vector for encryption\nWhen a cipher is used in certain modes such as CBC or GCM, it requires an initialization vector (IV). Under the same secret key, IVs should be unique and ideally unpredictable. If the same IV is used with the same secret key, then the same plaintext results in the same ciphertext. This can let an attacker learn if the same data pieces are transferred or stored, or help the attacker run a dictionary attack.\n\n\n## Recommendation\nUse a random IV generated by `SecureRandom`.\n\n\n## Example\nThe following example initializes a cipher with a static IV, which is unsafe:\n\n\n```java\nbyte[] iv = new byte[16]; // all zeroes\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\nThe next example initializes a cipher with a random IV:\n\n\n```java\nbyte[] iv = new byte[16];\nSecureRandom random = SecureRandom.getInstanceStrong();\nrandom.nextBytes(iv);\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\n\n## References\n* Wikipedia: [Initialization vector](https://en.wikipedia.org/wiki/Initialization_vector).\n* National Institute of Standards and Technology: [Recommendation for Block Cipher Modes of Operation](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf).\n* National Institute of Standards and Technology: [FIPS 140-2: Security Requirements for Cryptographic Modules](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf).\n* Common Weakness Enumeration: [CWE-329](https://cwe.mitre.org/data/definitions/329.html).\n* Common Weakness Enumeration: [CWE-1204](https://cwe.mitre.org/data/definitions/1204.html).\n",
+                  "text": "# Using a static initialization vector for encryption\nWhen a cipher is used in certain modes such as CBC or GCM, it requires an initialization vector (IV). Under the same secret key, IVs should be unique and ideally unpredictable. If the same IV is used with the same secret key, then the same plaintext results in the same ciphertext. This can let an attacker learn if the same data pieces are transferred or stored, or help the attacker run a dictionary attack.\n\n\n## Recommendation\nUse a random IV generated by `SecureRandom`.\n\n\n## Example\nThe following example initializes a cipher with a static IV, which is unsafe:\n\n\n```java\nbyte[] iv = new byte[16]; // all zeroes\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\nThe next example initializes a cipher with a random IV:\n\n\n```java\nbyte[] iv = new byte[16];\nSecureRandom random = SecureRandom.getInstanceStrong();\nrandom.nextBytes(iv);\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\n\n## References\n* Wikipedia: [Initialization vector](https://en.wikipedia.org/wiki/Initialization_vector).\n* National Institute of Standards and Technology: [Recommendation for Block Cipher Modes of Operation](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf).\n* National Institute of Standards and Technology: [FIPS 140-2: Security Requirements for Cryptographic Modules](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf).\n* Common Weakness Enumeration: [CWE-329](https://cwe.mitre.org/data/definitions/329.html).\n* Common Weakness Enumeration: [CWE-1204](https://cwe.mitre.org/data/definitions/1204.html).\n"
+                },
+                "id": "java/static-initialization-vector",
+                "name": "java/static-initialization-vector",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-1204/StaticInitializationVector.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-1204",
+                    "external/cwe/cwe-329",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Using a static initialization vector for encryption"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "The total number of lines of code across all Java and Kotlin files. This is a useful metric of the size of a database. For all source files that were seen during the build, this query counts the lines of code, excluding whitespace or comments."
+                },
+                "id": "java/summary/lines-of-code",
+                "name": "java/summary/lines-of-code",
+                "properties": {
+                  "tags": [
+                    "debug",
+                    "lines-of-code",
+                    "summary"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Total lines of Java/Kotlin code in the database"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "The total number of lines of code across all Java files. This is a useful metric of the size of a database. For all Java files that were seen during the build, this query counts the lines of code, excluding whitespace or comments."
+                },
+                "id": "java/summary/lines-of-code-java",
+                "name": "java/summary/lines-of-code-java",
+                "properties": {
+                  "tags": [
+                    "debug",
+                    "summary"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Total lines of Java code in the database"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "The total number of lines of code across all Kotlin files. This is a useful metric of the size of a database. For all Kotlin files that were seen during the build, this query counts the lines of code, excluding whitespace or comments."
+                },
+                "id": "java/summary/lines-of-code-kotlin",
+                "name": "java/summary/lines-of-code-kotlin",
+                "properties": {
+                  "tags": [
+                    "debug",
+                    "summary"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Total lines of Kotlin code in the database"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Arithmetic operations on user-controlled data that is not validated can cause overflows."
+                },
+                "help": {
+                  "markdown": "# User-controlled data in arithmetic expression\nPerforming calculations on user-controlled data can result in integer overflows unless the input is validated.\n\nIf the user is free to enter very large numbers, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on user-controlled data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a value is read from standard input into an `int`. Because the value is a user-controlled value, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Integer.parseInt(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// BAD: may overflow if input data is very large, for example\n\t\t\t// 'Integer.MAX_VALUE'\n\t\t\tint scaled = data * 10;\n\n\t\t\t//...\n\t\t\t\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE / 10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse\n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n",
+                  "text": "# User-controlled data in arithmetic expression\nPerforming calculations on user-controlled data can result in integer overflows unless the input is validated.\n\nIf the user is free to enter very large numbers, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on user-controlled data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a value is read from standard input into an `int`. Because the value is a user-controlled value, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Integer.parseInt(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// BAD: may overflow if input data is very large, for example\n\t\t\t// 'Integer.MAX_VALUE'\n\t\t\tint scaled = data * 10;\n\n\t\t\t//...\n\t\t\t\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE / 10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse\n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n"
+                },
+                "id": "java/tainted-arithmetic",
+                "name": "java/tainted-arithmetic",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-190/ArithmeticTainted.ql",
+                  "security-severity": "8.6",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-191",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled data in arithmetic expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using external input in format strings can lead to exceptions or information leaks."
+                },
+                "help": {
+                  "markdown": "# Use of externally-controlled format string\nThe `String.format` method and related methods, like `PrintStream.printf` and `Formatter.format`, all accept a format string that is used to format the trailing arguments to the format call by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain extra format specifiers that cause an exception to be thrown or information to be leaked.\n\nThe Java standard library implementation for the format methods throws an exception if either the format specifier does not match the type of the argument, or if there are too few or too many arguments. If unsanitized input is used in the format string, it may contain invalid extra format specifiers which cause an exception to be thrown.\n\nPositional format specifiers may be used to access an argument to the format call by position. Unsanitized input in the format string may use a positional format specifier to access information that was not intended to be visible. For example, when formatting a Calendar instance we may intend to print only the year, but a user-specified format string may include a specifier to access the month and day.\n\n\n## Recommendation\nIf the argument passed as a format string is meant to be a plain string rather than a format string, then pass `%s` as the format string, and pass the original argument as the sole trailing argument.\n\n\n## Example\nThe following program is meant to check a card security code for a stored credit card:\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    Calendar expirationDate = new GregorianCalendar(2017, GregorianCalendar.SEPTEMBER, 1);\n    // User provided value\n    String cardSecurityCode = request.getParameter(\"cardSecurityCode\");\n    \n    if (notValid(cardSecurityCode)) {\n      \n      /*\n       * BAD: user provided value is included in the format string.\n       * A malicious user could provide an extra format specifier, which causes an\n       * exception to be thrown. Or they could provide a %1$tm or %1$te format specifier to\n       * access the month or day of the expiration date.\n       */\n      System.out.format(cardSecurityCode +\n                          \" is not the right value. Hint: the card expires in %1$ty.\",\n                        expirationDate);\n      \n      // GOOD: %s is used to include the user-provided cardSecurityCode in the output\n      System.out.format(\"%s is not the right value. Hint: the card expires in %2$ty.\",\n                        cardSecurityCode,\n                        expirationDate);\n    }\n\n  }\n}\n```\nHowever, in the first format call it uses the cardSecurityCode provided by the user in a format string. If the user includes a format specifier in the cardSecurityCode field, they may be able to cause an exception to be thrown, or to be able to access extra information about the stored card expiration date.\n\nThe second format call shows the correct approach. The user-provided value is passed as an argument to the format call. This prevents any format specifiers in the user provided value from being evaluated.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [IDS06-J. Exclude unsanitized user input from format strings](https://wiki.sei.cmu.edu/confluence/display/java/IDS06-J.+Exclude+unsanitized+user+input+from+format+strings).\n* The Java Tutorials: [Formatting Numeric Print Output](https://docs.oracle.com/javase/tutorial/java/data/numberformat.html).\n* Java API Specification: [Formatter](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Formatter.html).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n",
+                  "text": "# Use of externally-controlled format string\nThe `String.format` method and related methods, like `PrintStream.printf` and `Formatter.format`, all accept a format string that is used to format the trailing arguments to the format call by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain extra format specifiers that cause an exception to be thrown or information to be leaked.\n\nThe Java standard library implementation for the format methods throws an exception if either the format specifier does not match the type of the argument, or if there are too few or too many arguments. If unsanitized input is used in the format string, it may contain invalid extra format specifiers which cause an exception to be thrown.\n\nPositional format specifiers may be used to access an argument to the format call by position. Unsanitized input in the format string may use a positional format specifier to access information that was not intended to be visible. For example, when formatting a Calendar instance we may intend to print only the year, but a user-specified format string may include a specifier to access the month and day.\n\n\n## Recommendation\nIf the argument passed as a format string is meant to be a plain string rather than a format string, then pass `%s` as the format string, and pass the original argument as the sole trailing argument.\n\n\n## Example\nThe following program is meant to check a card security code for a stored credit card:\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    Calendar expirationDate = new GregorianCalendar(2017, GregorianCalendar.SEPTEMBER, 1);\n    // User provided value\n    String cardSecurityCode = request.getParameter(\"cardSecurityCode\");\n    \n    if (notValid(cardSecurityCode)) {\n      \n      /*\n       * BAD: user provided value is included in the format string.\n       * A malicious user could provide an extra format specifier, which causes an\n       * exception to be thrown. Or they could provide a %1$tm or %1$te format specifier to\n       * access the month or day of the expiration date.\n       */\n      System.out.format(cardSecurityCode +\n                          \" is not the right value. Hint: the card expires in %1$ty.\",\n                        expirationDate);\n      \n      // GOOD: %s is used to include the user-provided cardSecurityCode in the output\n      System.out.format(\"%s is not the right value. Hint: the card expires in %2$ty.\",\n                        cardSecurityCode,\n                        expirationDate);\n    }\n\n  }\n}\n```\nHowever, in the first format call it uses the cardSecurityCode provided by the user in a format string. If the user includes a format specifier in the cardSecurityCode field, they may be able to cause an exception to be thrown, or to be able to access extra information about the stored card expiration date.\n\nThe second format call shows the correct approach. The user-provided value is passed as an argument to the format call. This prevents any format specifiers in the user provided value from being evaluated.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [IDS06-J. Exclude unsanitized user input from format strings](https://wiki.sei.cmu.edu/confluence/display/java/IDS06-J.+Exclude+unsanitized+user+input+from+format+strings).\n* The Java Tutorials: [Formatting Numeric Print Output](https://docs.oracle.com/javase/tutorial/java/data/numberformat.html).\n* Java API Specification: [Formatter](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Formatter.html).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n"
+                },
+                "id": "java/tainted-format-string",
+                "name": "java/tainted-format-string",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-134",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of externally-controlled format string"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Casting user-controlled numeric data to a narrower type without validation can cause unexpected truncation."
+                },
+                "help": {
+                  "markdown": "# User-controlled data in numeric cast\nCasting a user-controlled numeric value to a narrower type can result in truncated values unless the input is validated.\n\nNarrowing conversions may cause potentially unintended results. For example, casting the positive integer value `128` to type `byte` yields the negative value `-128`.\n\n\n## Recommendation\nGuard against unexpected truncation of user-controlled arithmetic data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the cast expression, so that the cast is performed only if the input is known to be within the range of the resulting type.\n* Avoid casting to a narrower type, and instead continue to use a wider type.\n\n## Example\nIn this example, a value is read from standard input into a `long`. Because the value is a user-controlled value, it could be extremely large. Casting this value to a narrower type could therefore cause unexpected truncation. The `scaled2` example uses a guard to avoid this problem and checks the range of the input before performing the cast. If the value is too large to cast to type `int` it is rejected as invalid.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) throws IOException {\n\t\t{\n\t\t\tlong data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Long.parseLong(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// AVOID: potential truncation if input data is very large,\n\t\t\t// for example 'Long.MAX_VALUE'\n\t\t\tint scaled = (int)data;\n\n\t\t\t//...\n\n\t\t\t// GOOD: use a guard to ensure no truncation occurs\n\t\t\tint scaled2;\n\t\t\tif (data > Integer.MIN_VALUE && data < Integer.MAX_VALUE)\n\t\t\t\tscaled2 = (int)data;\n\t\t\telse\n\t\t\t\tthrow new IllegalArgumentException(\"Invalid input\");\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data](https://wiki.sei.cmu.edu/confluence/display/java/NUM12-J.+Ensure+conversions+of+numeric+types+to+narrower+types+do+not+result+in+lost+or+misinterpreted+data).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n",
+                  "text": "# User-controlled data in numeric cast\nCasting a user-controlled numeric value to a narrower type can result in truncated values unless the input is validated.\n\nNarrowing conversions may cause potentially unintended results. For example, casting the positive integer value `128` to type `byte` yields the negative value `-128`.\n\n\n## Recommendation\nGuard against unexpected truncation of user-controlled arithmetic data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the cast expression, so that the cast is performed only if the input is known to be within the range of the resulting type.\n* Avoid casting to a narrower type, and instead continue to use a wider type.\n\n## Example\nIn this example, a value is read from standard input into a `long`. Because the value is a user-controlled value, it could be extremely large. Casting this value to a narrower type could therefore cause unexpected truncation. The `scaled2` example uses a guard to avoid this problem and checks the range of the input before performing the cast. If the value is too large to cast to type `int` it is rejected as invalid.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) throws IOException {\n\t\t{\n\t\t\tlong data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Long.parseLong(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// AVOID: potential truncation if input data is very large,\n\t\t\t// for example 'Long.MAX_VALUE'\n\t\t\tint scaled = (int)data;\n\n\t\t\t//...\n\n\t\t\t// GOOD: use a guard to ensure no truncation occurs\n\t\t\tint scaled2;\n\t\t\tif (data > Integer.MIN_VALUE && data < Integer.MAX_VALUE)\n\t\t\t\tscaled2 = (int)data;\n\t\t\telse\n\t\t\t\tthrow new IllegalArgumentException(\"Invalid input\");\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data](https://wiki.sei.cmu.edu/confluence/display/java/NUM12-J.+Ensure+conversions+of+numeric+types+to+narrower+types+do+not+result+in+lost+or+misinterpreted+data).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n"
+                },
+                "id": "java/tainted-numeric-cast",
+                "name": "java/tainted-numeric-cast",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-681/NumericCastTainted.ql",
+                  "security-severity": "9",
+                  "tags": [
+                    "external/cwe/cwe-197",
+                    "external/cwe/cwe-681",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled data in numeric cast"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using user-controlled data in a permissions check may result in inappropriate permissions being granted."
+                },
+                "help": {
+                  "markdown": "# User-controlled data used in permissions check\nUsing user-controlled data in a permissions check may allow a user to gain unauthorized access to protected functionality or data.\n\n\n## Recommendation\nWhen checking whether a user is authorized for a particular activity, do not use data that is controlled by that user in the permissions check. If necessary, always validate the input, ideally against a fixed list of expected values.\n\nSimilarly, do not decide which permission to check for based on user data. In particular, avoid using computation to decide which permissions to check for. Use fixed permissions for particular actions, rather than generating the permission to check for.\n\n\n## Example\nThis example, using the Apache Shiro security framework, shows two ways to specify the permissions to check. The first way uses a string, `whatDoTheyWantToDo`, to specify the permissions to check. However, this string is built from user input. This can allow an attacker to force a check against a permission that they know they have, rather than the permission that should be checked. For example, while trying to access the account details of another user, the attacker could force the system to check whether they had permissions to access their *own* account details, which is incorrect, and would allow them to perform the action. The second, more secure way uses a fixed check that does not depend on data that is controlled by the user.\n\n\n```java\npublic static void main(String[] args) {\n\tString whatDoTheyWantToDo = args[0];\n\tSubject subject = SecurityUtils.getSubject();\n\n\t// BAD: permissions decision made using tainted data\n\tif(subject.isPermitted(\"domain:sublevel:\" + whatDoTheyWantToDo))\n\t\tdoIt();\n\n\t// GOOD: use fixed checks\n\tif(subject.isPermitted(\"domain:sublevel:whatTheMethodDoes\"))\n\t\tdoIt();\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n",
+                  "text": "# User-controlled data used in permissions check\nUsing user-controlled data in a permissions check may allow a user to gain unauthorized access to protected functionality or data.\n\n\n## Recommendation\nWhen checking whether a user is authorized for a particular activity, do not use data that is controlled by that user in the permissions check. If necessary, always validate the input, ideally against a fixed list of expected values.\n\nSimilarly, do not decide which permission to check for based on user data. In particular, avoid using computation to decide which permissions to check for. Use fixed permissions for particular actions, rather than generating the permission to check for.\n\n\n## Example\nThis example, using the Apache Shiro security framework, shows two ways to specify the permissions to check. The first way uses a string, `whatDoTheyWantToDo`, to specify the permissions to check. However, this string is built from user input. This can allow an attacker to force a check against a permission that they know they have, rather than the permission that should be checked. For example, while trying to access the account details of another user, the attacker could force the system to check whether they had permissions to access their *own* account details, which is incorrect, and would allow them to perform the action. The second, more secure way uses a fixed check that does not depend on data that is controlled by the user.\n\n\n```java\npublic static void main(String[] args) {\n\tString whatDoTheyWantToDo = args[0];\n\tSubject subject = SecurityUtils.getSubject();\n\n\t// BAD: permissions decision made using tainted data\n\tif(subject.isPermitted(\"domain:sublevel:\" + whatDoTheyWantToDo))\n\t\tdoIt();\n\n\t// GOOD: use fixed checks\n\tif(subject.isPermitted(\"domain:sublevel:whatTheMethodDoes\"))\n\t\tdoIt();\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n"
+                },
+                "id": "java/tainted-permissions-check",
+                "name": "java/tainted-permissions-check",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-290",
+                    "external/cwe/cwe-807",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled data used in permissions check"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of external libraries used in the code"
+                },
+                "id": "java/telemetry/external-libs",
+                "name": "java/telemetry/external-libs",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "External libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Information about the extraction for a Java database"
+                },
+                "id": "java/telemetry/extraction-information",
+                "name": "java/telemetry/extraction-information",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Java extraction information"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of supported 3rd party APIs used in the codebase. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api",
+                "name": "java/telemetry/supported-external-api",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Usage of supported APIs coming from external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs detected as sinks. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api-sinks",
+                "name": "java/telemetry/supported-external-api-sinks",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Supported sinks in external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs detected as sources. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api-sources",
+                "name": "java/telemetry/supported-external-api-sources",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Supported sources in external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs detected as flow steps. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api-taint",
+                "name": "java/telemetry/supported-external-api-taint",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Supported flow steps in external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs used in the codebase. Excludes test and generated code."
+                },
+                "id": "java/telemetry/unsupported-external-api",
+                "name": "java/telemetry/unsupported-external-api",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Usage of unsupported APIs coming from external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using a resource after an unsynchronized state check can lead to a race condition, if the state may be changed between the check and use."
+                },
+                "help": {
+                  "markdown": "# Time-of-check time-of-use race condition\nOften it is necessary to check the state of a resource before using it. If the resource is accessed concurrently, then the check and the use need to be performed atomically, otherwise the state of the resource may change between the check and the use. This can lead to a \"time-of-check/time-of-use\" (TOCTOU) race condition.\n\nIn Java, classes may present state inspection methods and operation methods which are synchronized. This prevents multiple threads from executing those methods simultaneously, but it does not prevent a state change in between separate method invocations.\n\n\n## Recommendation\nWhen calling a series of methods which require a consistent view of an object, make sure to synchronize on a monitor that will prevent any other access to the object during your operations.\n\nIf the class that you are using has a well-designed interface, then synchronizing on the object itself will prevent its state being changed inappropriately.\n\n\n## Example\nThe following example shows a resource which has a readiness state, and an action that is only valid if the resource is ready.\n\nIn the bad case, the caller checks the readiness state and then acts, but does not synchronize around the two calls, so the readiness state may be changed by another thread.\n\nIn the good case, the caller jointly synchronizes the check and the use on the resource, so no other thread can modify the state before the use.\n\n\n```java\nclass Resource {\n\tpublic synchronized boolean isReady() { ... }\n\n\tpublic synchronized void setReady(boolean ready) { ... }\n\t\n\tpublic synchronized void act() { \n\t\tif (!isReady())\n\t\t\tthrow new IllegalStateException();\n\t\t...\n\t}\n}\n\t\npublic synchronized void bad(Resource r) {\n\tif (r.isReady()) {\n\t\t// r might no longer be ready, another thread might\n\t\t// have called setReady(false)\n\t\tr.act();\n\t}\n}\n\npublic synchronized void good(Resource r) {\n\tsynchronized(r) {\n\t\tif (r.isReady()) {\n\t\t\tr.act();\n\t\t}\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-367](https://cwe.mitre.org/data/definitions/367.html).\n",
+                  "text": "# Time-of-check time-of-use race condition\nOften it is necessary to check the state of a resource before using it. If the resource is accessed concurrently, then the check and the use need to be performed atomically, otherwise the state of the resource may change between the check and the use. This can lead to a \"time-of-check/time-of-use\" (TOCTOU) race condition.\n\nIn Java, classes may present state inspection methods and operation methods which are synchronized. This prevents multiple threads from executing those methods simultaneously, but it does not prevent a state change in between separate method invocations.\n\n\n## Recommendation\nWhen calling a series of methods which require a consistent view of an object, make sure to synchronize on a monitor that will prevent any other access to the object during your operations.\n\nIf the class that you are using has a well-designed interface, then synchronizing on the object itself will prevent its state being changed inappropriately.\n\n\n## Example\nThe following example shows a resource which has a readiness state, and an action that is only valid if the resource is ready.\n\nIn the bad case, the caller checks the readiness state and then acts, but does not synchronize around the two calls, so the readiness state may be changed by another thread.\n\nIn the good case, the caller jointly synchronizes the check and the use on the resource, so no other thread can modify the state before the use.\n\n\n```java\nclass Resource {\n\tpublic synchronized boolean isReady() { ... }\n\n\tpublic synchronized void setReady(boolean ready) { ... }\n\t\n\tpublic synchronized void act() { \n\t\tif (!isReady())\n\t\t\tthrow new IllegalStateException();\n\t\t...\n\t}\n}\n\t\npublic synchronized void bad(Resource r) {\n\tif (r.isReady()) {\n\t\t// r might no longer be ready, another thread might\n\t\t// have called setReady(false)\n\t\tr.act();\n\t}\n}\n\npublic synchronized void good(Resource r) {\n\tsynchronized(r) {\n\t\tif (r.isReady()) {\n\t\t\tr.act();\n\t\t}\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-367](https://cwe.mitre.org/data/definitions/367.html).\n"
+                },
+                "id": "java/toctou-race-condition",
+                "name": "java/toctou-race-condition",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-367/TOCTOURace.ql",
+                  "security-severity": "7.7",
+                  "tags": [
+                    "external/cwe/cwe-367",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Time-of-check time-of-use race condition"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Modifying the HTTP session attributes based on data from an untrusted source may violate a trust boundary."
+                },
+                "help": {
+                  "markdown": "# Trust boundary violation\nA trust boundary violation occurs when a value is passed from a less trusted context to a more trusted context.\n\nFor example, a value that is generated by a less trusted source, such as a user, may be passed to a more trusted source, such as a system process. If the less trusted source is malicious, then the value may be crafted to exploit the more trusted source.\n\nTrust boundary violations are often caused by a failure to validate input. For example, if a web application accepts a cookie from a user, then the application should validate the cookie before using it. If the cookie is not validated, then the user may be able to craft a malicious cookie that exploits the application.\n\n\n## Recommendation\nTo maintain a trust boundary, validate data from less trusted sources before use.\n\n\n## Example\nIn the first (bad) example, the server accepts a parameter from the user, then uses it to set the username without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    // BAD: The input is written to the session without being sanitized.\n    request.getSession().setAttribute(\"username\", username);\n}\n```\nIn the second (good) example, the server validates the parameter from the user, then uses it to set the username.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    if (validator.isValidInput(\"HTTP parameter\", username, \"username\", 20, false)) {\n        // GOOD: The input is sanitized before being written to the session.\n        request.getSession().setAttribute(\"username\", username);\n    }\n}\n```\n\n## References\n* Wikipedia: [Trust boundary](http://en.wikipedia.org/wiki/Trust_boundary).\n* Common Weakness Enumeration: [CWE-501](https://cwe.mitre.org/data/definitions/501.html).\n",
+                  "text": "# Trust boundary violation\nA trust boundary violation occurs when a value is passed from a less trusted context to a more trusted context.\n\nFor example, a value that is generated by a less trusted source, such as a user, may be passed to a more trusted source, such as a system process. If the less trusted source is malicious, then the value may be crafted to exploit the more trusted source.\n\nTrust boundary violations are often caused by a failure to validate input. For example, if a web application accepts a cookie from a user, then the application should validate the cookie before using it. If the cookie is not validated, then the user may be able to craft a malicious cookie that exploits the application.\n\n\n## Recommendation\nTo maintain a trust boundary, validate data from less trusted sources before use.\n\n\n## Example\nIn the first (bad) example, the server accepts a parameter from the user, then uses it to set the username without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    // BAD: The input is written to the session without being sanitized.\n    request.getSession().setAttribute(\"username\", username);\n}\n```\nIn the second (good) example, the server validates the parameter from the user, then uses it to set the username.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    if (validator.isValidInput(\"HTTP parameter\", username, \"username\", 20, false)) {\n        // GOOD: The input is sanitized before being written to the session.\n        request.getSession().setAttribute(\"username\", username);\n    }\n}\n```\n\n## References\n* Wikipedia: [Trust boundary](http://en.wikipedia.org/wiki/Trust_boundary).\n* Common Weakness Enumeration: [CWE-501](https://cwe.mitre.org/data/definitions/501.html).\n"
+                },
+                "id": "java/trust-boundary-violation",
+                "name": "java/trust-boundary-violation",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-501/TrustBoundaryViolation.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-501",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Trust boundary violation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Arithmetic operations on uncontrolled data that is not validated can cause overflows."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled data in arithmetic expression\nPerforming calculations on uncontrolled data can result in integer overflows unless the input is validated.\n\nIf the data is not under your control, and can take extremely large values, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on uncontrolled data by doing one of the following:\n\n* Validate the data.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a random integer is generated. Because the value is not controlled by the programmer, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data = (new java.security.SecureRandom()).nextInt();\n\n\t\t\t// BAD: may overflow if data is large\n\t\t\tint scaled = data * 10;\n\n\t\t\t// ...\n\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE/10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse \n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n",
+                  "text": "# Uncontrolled data in arithmetic expression\nPerforming calculations on uncontrolled data can result in integer overflows unless the input is validated.\n\nIf the data is not under your control, and can take extremely large values, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on uncontrolled data by doing one of the following:\n\n* Validate the data.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a random integer is generated. Because the value is not controlled by the programmer, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data = (new java.security.SecureRandom()).nextInt();\n\n\t\t\t// BAD: may overflow if data is large\n\t\t\tint scaled = data * 10;\n\n\t\t\t// ...\n\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE/10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse \n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n"
+                },
+                "id": "java/uncontrolled-arithmetic",
+                "name": "java/uncontrolled-arithmetic",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql",
+                  "security-severity": "8.6",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-191",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled data in arithmetic expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An iteration or loop with an exit condition that cannot be reached is an indication of faulty logic and can likely lead to infinite looping."
+                },
+                "help": {
+                  "markdown": "# Loop with unreachable exit condition\nLoops can contain multiple exit conditions, either directly in the loop condition or as guards around `break` or `return` statements. If an exit condition cannot be satisfied, then the code is misleading at best, and the loop might not terminate.\n\n\n## Recommendation\nWhen writing a loop that is intended to terminate, make sure that all the necessary exit conditions can be satisfied and that loop termination is clear.\n\n\n## Example\nThe following example shows a potentially infinite loop, since the inner loop condition is constantly true. Of course, the loop may or may not be infinite depending on the behavior of `shouldBreak`, but if this was intended as the only exit condition the loop should be rewritten to make this clear.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; i<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\nTo fix the loop the condition is corrected to check the right variable.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; j<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\n\n## References\n* Java Language Specification: [Blocks and Statements](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html).\n* Common Weakness Enumeration: [CWE-835](https://cwe.mitre.org/data/definitions/835.html).\n",
+                  "text": "# Loop with unreachable exit condition\nLoops can contain multiple exit conditions, either directly in the loop condition or as guards around `break` or `return` statements. If an exit condition cannot be satisfied, then the code is misleading at best, and the loop might not terminate.\n\n\n## Recommendation\nWhen writing a loop that is intended to terminate, make sure that all the necessary exit conditions can be satisfied and that loop termination is clear.\n\n\n## Example\nThe following example shows a potentially infinite loop, since the inner loop condition is constantly true. Of course, the loop may or may not be infinite depending on the behavior of `shouldBreak`, but if this was intended as the only exit condition the loop should be rewritten to make this clear.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; i<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\nTo fix the loop the condition is corrected to check the right variable.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; j<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\n\n## References\n* Java Language Specification: [Blocks and Statements](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html).\n* Common Weakness Enumeration: [CWE-835](https://cwe.mitre.org/data/definitions/835.html).\n"
+                },
+                "id": "java/unreachable-exit-in-loop",
+                "name": "java/unreachable-exit-in-loop",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-835/InfiniteLoop.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-835",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Loop with unreachable exit condition"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A lock that is acquired one or more times without a matching number of unlocks may cause a deadlock."
+                },
+                "help": {
+                  "markdown": "# Unreleased lock\nWhen a thread acquires a lock it must make sure to unlock it again; failing to do so can lead to deadlocks. If a lock allows a thread to acquire it multiple times, for example `java.util.concurrent.locks.ReentrantLock`, then the number of locks must match the number of unlocks in order to fully release the lock.\n\n\n## Recommendation\nIt is recommended practice always to immediately follow a call to `lock` with a `try` block and place the call to `unlock` inside the `finally` block. Beware of calls inside the `finally` block that could cause exceptions, as this may result in skipping the call to `unlock`.\n\n\n## Example\nThe typical pattern for using locks safely looks like this:\n\n\n```java\npublic void m() {\n   lock.lock();\n   // A\n   try {\n      // ... method body\n   } finally {\n      // B\n      lock.unlock();\n   }\n}\n```\nIf any code that can cause a premature method exit (for example by throwing an exception) is inserted at either point `A` or `B` then the method might not unlock, so this should be avoided.\n\n\n## References\n* Java API Specification: [java.util.concurrent.locks.Lock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/Lock.html), [java.util.concurrent.locks.ReentrantLock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html).\n* Common Weakness Enumeration: [CWE-764](https://cwe.mitre.org/data/definitions/764.html).\n* Common Weakness Enumeration: [CWE-833](https://cwe.mitre.org/data/definitions/833.html).\n",
+                  "text": "# Unreleased lock\nWhen a thread acquires a lock it must make sure to unlock it again; failing to do so can lead to deadlocks. If a lock allows a thread to acquire it multiple times, for example `java.util.concurrent.locks.ReentrantLock`, then the number of locks must match the number of unlocks in order to fully release the lock.\n\n\n## Recommendation\nIt is recommended practice always to immediately follow a call to `lock` with a `try` block and place the call to `unlock` inside the `finally` block. Beware of calls inside the `finally` block that could cause exceptions, as this may result in skipping the call to `unlock`.\n\n\n## Example\nThe typical pattern for using locks safely looks like this:\n\n\n```java\npublic void m() {\n   lock.lock();\n   // A\n   try {\n      // ... method body\n   } finally {\n      // B\n      lock.unlock();\n   }\n}\n```\nIf any code that can cause a premature method exit (for example by throwing an exception) is inserted at either point `A` or `B` then the method might not unlock, so this should be avoided.\n\n\n## References\n* Java API Specification: [java.util.concurrent.locks.Lock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/Lock.html), [java.util.concurrent.locks.ReentrantLock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html).\n* Common Weakness Enumeration: [CWE-764](https://cwe.mitre.org/data/definitions/764.html).\n* Common Weakness Enumeration: [CWE-833](https://cwe.mitre.org/data/definitions/833.html).\n"
+                },
+                "id": "java/unreleased-lock",
+                "name": "java/unreleased-lock",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Likely%20Bugs/Concurrency/UnreleasedLock.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "external/cwe/cwe-764",
+                    "external/cwe/cwe-833",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unreleased lock"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "SSLSocket/SSLEngine ignores all SSL certificate validation errors when establishing an HTTPS connection, thereby making the app vulnerable to man-in-the-middle attacks."
+                },
+                "help": {
+                  "markdown": "# Unsafe certificate trust\nJava offers two mechanisms for SSL authentication - trust manager and hostname verifier (the later is checked by the `java/insecure-hostname-verifier` query). The trust manager validates the peer's certificate chain while hostname verification establishes that the hostname in the URL matches the hostname in the server's identification.\n\nWhen `SSLSocket` or `SSLEngine` are created without a secure `setEndpointIdentificationAlgorithm`, hostname verification is disabled by default.\n\nThis query checks whether `setEndpointIdentificationAlgorithm` is missing, thereby making the application vulnerable to man-in-the-middle attacks. The query also covers insecure configurations of `com.rabbitmq.client.ConnectionFactory`.\n\n\n## Recommendation\nValidate SSL certificates in SSL authentication.\n\n\n## Example\nThe following two examples show two ways of configuring SSLSocket/SSLEngine. In the 'BAD' case, `setEndpointIdentificationAlgorithm` is not called, thus no hostname verification takes place. In the 'GOOD' case, `setEndpointIdentificationAlgorithm` is called.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();\n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL engine to trigger hostname verification\n\t\tsslEngine.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();  //BAD: No endpointIdentificationAlgorithm set\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tfinal SSLSocketFactory socketFactory = sslContext.getSocketFactory();\n\t\tSSLSocket socket = (SSLSocket) socketFactory.createSocket(\"www.example.com\", 443); \n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL socket to trigger hostname verification\n\t\tsocket.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol();\n\t\tconnectionFactory.enableHostnameVerification();  //GOOD: Enable hostname verification for rabbitmq ConnectionFactory\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol(); //BAD: Hostname verification for rabbitmq ConnectionFactory is not enabled\n\t}\n}\n```\n\n## References\n* [Testing Endpoint Identify Verification (MSTG-NETWORK-3)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md).\n* [SSLParameters.setEndpointIdentificationAlgorithm documentation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLParameters.html#setEndpointIdentificationAlgorithm(java.lang.String)).\n* RabbitMQ: [ConnectionFactory.enableHostnameVerification documentation](https://rabbitmq.github.io/rabbitmq-java-client/api/current/com/rabbitmq/client/ConnectionFactory.html#enableHostnameVerification()).\n* RabbitMQ: [Using TLS in the Java Client](https://www.rabbitmq.com/ssl.html#java-client).\n* [CVE-2018-17187: Apache Qpid Proton-J transport issue with hostname verification](https://github.com/advisories/GHSA-xvch-r4wf-h8w9).\n* [CVE-2018-8034: Apache Tomcat - host name verification when using TLS with the WebSocket client](https://github.com/advisories/GHSA-46j3-r4pj-4835).\n* [CVE-2018-11087: Pivotal Spring AMQP vulnerability due to lack of hostname validation](https://github.com/advisories/GHSA-w4g2-9hj6-5472).\n* [CVE-2018-11775: TLS hostname verification issue when using the Apache ActiveMQ Client](https://github.com/advisories/GHSA-m9w8-v359-9ffr).\n* Common Weakness Enumeration: [CWE-273](https://cwe.mitre.org/data/definitions/273.html).\n",
+                  "text": "# Unsafe certificate trust\nJava offers two mechanisms for SSL authentication - trust manager and hostname verifier (the later is checked by the `java/insecure-hostname-verifier` query). The trust manager validates the peer's certificate chain while hostname verification establishes that the hostname in the URL matches the hostname in the server's identification.\n\nWhen `SSLSocket` or `SSLEngine` are created without a secure `setEndpointIdentificationAlgorithm`, hostname verification is disabled by default.\n\nThis query checks whether `setEndpointIdentificationAlgorithm` is missing, thereby making the application vulnerable to man-in-the-middle attacks. The query also covers insecure configurations of `com.rabbitmq.client.ConnectionFactory`.\n\n\n## Recommendation\nValidate SSL certificates in SSL authentication.\n\n\n## Example\nThe following two examples show two ways of configuring SSLSocket/SSLEngine. In the 'BAD' case, `setEndpointIdentificationAlgorithm` is not called, thus no hostname verification takes place. In the 'GOOD' case, `setEndpointIdentificationAlgorithm` is called.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();\n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL engine to trigger hostname verification\n\t\tsslEngine.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();  //BAD: No endpointIdentificationAlgorithm set\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tfinal SSLSocketFactory socketFactory = sslContext.getSocketFactory();\n\t\tSSLSocket socket = (SSLSocket) socketFactory.createSocket(\"www.example.com\", 443); \n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL socket to trigger hostname verification\n\t\tsocket.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol();\n\t\tconnectionFactory.enableHostnameVerification();  //GOOD: Enable hostname verification for rabbitmq ConnectionFactory\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol(); //BAD: Hostname verification for rabbitmq ConnectionFactory is not enabled\n\t}\n}\n```\n\n## References\n* [Testing Endpoint Identify Verification (MSTG-NETWORK-3)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md).\n* [SSLParameters.setEndpointIdentificationAlgorithm documentation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLParameters.html#setEndpointIdentificationAlgorithm(java.lang.String)).\n* RabbitMQ: [ConnectionFactory.enableHostnameVerification documentation](https://rabbitmq.github.io/rabbitmq-java-client/api/current/com/rabbitmq/client/ConnectionFactory.html#enableHostnameVerification()).\n* RabbitMQ: [Using TLS in the Java Client](https://www.rabbitmq.com/ssl.html#java-client).\n* [CVE-2018-17187: Apache Qpid Proton-J transport issue with hostname verification](https://github.com/advisories/GHSA-xvch-r4wf-h8w9).\n* [CVE-2018-8034: Apache Tomcat - host name verification when using TLS with the WebSocket client](https://github.com/advisories/GHSA-46j3-r4pj-4835).\n* [CVE-2018-11087: Pivotal Spring AMQP vulnerability due to lack of hostname validation](https://github.com/advisories/GHSA-w4g2-9hj6-5472).\n* [CVE-2018-11775: TLS hostname verification issue when using the Apache ActiveMQ Client](https://github.com/advisories/GHSA-m9w8-v359-9ffr).\n* Common Weakness Enumeration: [CWE-273](https://cwe.mitre.org/data/definitions/273.html).\n"
+                },
+                "id": "java/unsafe-cert-trust",
+                "name": "java/unsafe-cert-trust",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-273/UnsafeCertTrust.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-273",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unsafe certificate trust"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Deserializing user-controlled data may allow attackers to execute arbitrary code."
+                },
+                "help": {
+                  "markdown": "# Deserialization of user-controlled data\nDeserializing untrusted data using any deserialization framework that allows the construction of arbitrary serializable objects is easily exploitable and in many cases allows an attacker to execute arbitrary code. Even before a deserialized object is returned to the caller of a deserialization method a lot of code may have been executed, including static initializers, constructors, and finalizers. Automatic deserialization of fields means that an attacker may craft a nested combination of objects on which the executed initialization code may have unforeseen effects, such as the execution of arbitrary code.\n\nThere are many different serialization frameworks. This query currently supports Kryo, XmlDecoder, XStream, SnakeYaml, JYaml, JsonIO, YAMLBeans, HessianBurlap, Castor, Burlap, Jackson, Jabsorb, Jodd JSON, Flexjson, Gson, JMS, and Java IO serialization through `ObjectInputStream`/`ObjectOutputStream`.\n\n\n## Recommendation\nAvoid deserialization of untrusted data if at all possible. If the architecture permits it then use other formats instead of serialized objects, for example JSON or XML. However, these formats should not be deserialized into complex objects because this provides further opportunities for attack. For example, XML-based deserialization attacks are possible through libraries such as XStream and XmlDecoder.\n\nAlternatively, a tightly controlled whitelist can limit the vulnerability of code, but be aware of the existence of so-called Bypass Gadgets, which can circumvent such protection measures.\n\nRecommendations specific to particular frameworks supported by this query:\n\n**FastJson** - `com.alibaba:fastjson`\n\n* **Secure by Default**: Partially\n* **Recommendation**: Call `com.alibaba.fastjson.parser.ParserConfig#setSafeMode` with the argument `true` before deserializing untrusted data.\n\n\n**FasterXML** - `com.fasterxml.jackson.core:jackson-databind`\n\n* **Secure by Default**: Yes\n* **Recommendation**: Don't call `com.fasterxml.jackson.databind.ObjectMapper#enableDefaultTyping` and don't annotate any object fields with `com.fasterxml.jackson.annotation.JsonTypeInfo` passing either the `CLASS` or `MINIMAL_CLASS` values to the annotation. Read [this guide](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba).\n\n\n**Kryo** - `com.esotericsoftware:kryo` and `com.esotericsoftware:kryo5`\n\n* **Secure by Default**: Yes for `com.esotericsoftware:kryo5` and for `com.esotericsoftware:kryo` >= v5.0.0\n* **Recommendation**: Don't call `com.esotericsoftware.kryo(5).Kryo#setRegistrationRequired` with the argument `false` on any `Kryo` instance that may deserialize untrusted data.\n\n\n**ObjectInputStream** - `Java Standard Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Use a validating input stream, such as `org.apache.commons.io.serialization.ValidatingObjectInputStream`.\n\n\n**SnakeYAML** - `org.yaml:snakeyaml`\n\n* **Secure by Default**: No\n* **Recommendation**: Pass an instance of `org.yaml.snakeyaml.constructor.SafeConstructor` to `org.yaml.snakeyaml.Yaml`'s constructor before using it to deserialize untrusted data.\n\n\n**XML Decoder** - `Standard Java Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Do not use with untrusted user input.\n\n\n**ObjectMesssage** - `Java EE/Jakarta EE`\n\n* **Secure by Default**: Depends on the JMS implementation.\n* **Recommendation**: Do not use with untrusted user input.\n\n\n\n## Example\nThe following example calls `readObject` directly on an `ObjectInputStream` that is constructed from untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic MyObject {\n  public int field;\n  MyObject(int field) {\n    this.field = field;\n  }\n}\n\npublic MyObject deserialize(Socket sock) {\n  try(ObjectInputStream in = new ObjectInputStream(sock.getInputStream())) {\n    return (MyObject)in.readObject(); // unsafe\n  }\n}\n\n```\nRewriting the communication protocol to only rely on reading primitive types from the input stream removes the vulnerability.\n\n\n```java\npublic MyObject deserialize(Socket sock) {\n  try(DataInputStream in = new DataInputStream(sock.getInputStream())) {\n    return new MyObject(in.readInt());\n  }\n}\n\n```\n\n## References\n* OWASP vulnerability description: [Deserialization of untrusted data](https://www.owasp.org/index.php/Deserialization_of_untrusted_data).\n* OWASP guidance on deserializing objects: [Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html).\n* Talks by Chris Frohoff & Gabriel Lawrence: [ AppSecCali 2015: Marshalling Pickles - how deserializing objects will ruin your day](http://frohoff.github.io/appseccali-marshalling-pickles/), [OWASP SD: Deserialize My Shorts: Or How I Learned to Start Worrying and Hate Java Object Deserialization](http://frohoff.github.io/owaspsd-deserialize-my-shorts/).\n* Alvaro Muñoz & Christian Schneider, RSAConference 2016: [Serial Killer: Silently Pwning Your Java Endpoints](https://speakerdeck.com/pwntester/serial-killer-silently-pwning-your-java-endpoints).\n* SnakeYaml documentation on deserialization: [SnakeYaml deserialization](https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation#markdown-header-loading-yaml).\n* Hessian deserialization and related gadget chains: [Hessian deserialization](https://paper.seebug.org/1137/).\n* Castor and Hessian java deserialization vulnerabilities: [Castor and Hessian deserialization](https://securitylab.github.com/research/hessian-java-deserialization-castor-vulnerabilities/).\n* Remote code execution in JYaml library: [JYaml deserialization](https://www.cybersecurity-help.cz/vdb/SB2020022512).\n* JsonIO deserialization vulnerabilities: [JsonIO deserialization](https://klezvirus.github.io/Advanced-Web-Hacking/Serialisation/).\n* Research by Moritz Bechler: [Java Unmarshaller Security - Turning your data into code execution](https://www.github.com/mbechler/marshalsec/blob/master/marshalsec.pdf?raw=true)\n* Blog posts by the developer of Jackson libraries: [On Jackson CVEs: Don’t Panic — Here is what you need to know](https://cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062) [Jackson 2.10: Safe Default Typing](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba)\n* Jabsorb documentation on deserialization: [Jabsorb JSON Serializer](https://github.com/Servoy/jabsorb/blob/master/src/org/jabsorb/).\n* Jodd JSON documentation on deserialization: [JoddJson Parser](https://json.jodd.org/parser).\n* RCE in Flexjson: [Flexjson deserialization](https://codewhitesec.blogspot.com/2020/03/liferay-portal-json-vulns.html).\n* Android Intent deserialization vulnerabilities with GSON parser: [Insecure use of JSON parsers](https://blog.oversecured.com/Exploiting-memory-corruption-vulnerabilities-on-Android/#insecure-use-of-json-parsers).\n* Research by Matthias Kaiser: [Pwning Your Java Messaging With Deserialization Vulnerabilities](https://www.blackhat.com/docs/us-16/materials/us-16-Kaiser-Pwning-Your-Java-Messaging-With-Deserialization-Vulnerabilities.pdf).\n* Common Weakness Enumeration: [CWE-502](https://cwe.mitre.org/data/definitions/502.html).\n",
+                  "text": "# Deserialization of user-controlled data\nDeserializing untrusted data using any deserialization framework that allows the construction of arbitrary serializable objects is easily exploitable and in many cases allows an attacker to execute arbitrary code. Even before a deserialized object is returned to the caller of a deserialization method a lot of code may have been executed, including static initializers, constructors, and finalizers. Automatic deserialization of fields means that an attacker may craft a nested combination of objects on which the executed initialization code may have unforeseen effects, such as the execution of arbitrary code.\n\nThere are many different serialization frameworks. This query currently supports Kryo, XmlDecoder, XStream, SnakeYaml, JYaml, JsonIO, YAMLBeans, HessianBurlap, Castor, Burlap, Jackson, Jabsorb, Jodd JSON, Flexjson, Gson, JMS, and Java IO serialization through `ObjectInputStream`/`ObjectOutputStream`.\n\n\n## Recommendation\nAvoid deserialization of untrusted data if at all possible. If the architecture permits it then use other formats instead of serialized objects, for example JSON or XML. However, these formats should not be deserialized into complex objects because this provides further opportunities for attack. For example, XML-based deserialization attacks are possible through libraries such as XStream and XmlDecoder.\n\nAlternatively, a tightly controlled whitelist can limit the vulnerability of code, but be aware of the existence of so-called Bypass Gadgets, which can circumvent such protection measures.\n\nRecommendations specific to particular frameworks supported by this query:\n\n**FastJson** - `com.alibaba:fastjson`\n\n* **Secure by Default**: Partially\n* **Recommendation**: Call `com.alibaba.fastjson.parser.ParserConfig#setSafeMode` with the argument `true` before deserializing untrusted data.\n\n\n**FasterXML** - `com.fasterxml.jackson.core:jackson-databind`\n\n* **Secure by Default**: Yes\n* **Recommendation**: Don't call `com.fasterxml.jackson.databind.ObjectMapper#enableDefaultTyping` and don't annotate any object fields with `com.fasterxml.jackson.annotation.JsonTypeInfo` passing either the `CLASS` or `MINIMAL_CLASS` values to the annotation. Read [this guide](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba).\n\n\n**Kryo** - `com.esotericsoftware:kryo` and `com.esotericsoftware:kryo5`\n\n* **Secure by Default**: Yes for `com.esotericsoftware:kryo5` and for `com.esotericsoftware:kryo` >= v5.0.0\n* **Recommendation**: Don't call `com.esotericsoftware.kryo(5).Kryo#setRegistrationRequired` with the argument `false` on any `Kryo` instance that may deserialize untrusted data.\n\n\n**ObjectInputStream** - `Java Standard Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Use a validating input stream, such as `org.apache.commons.io.serialization.ValidatingObjectInputStream`.\n\n\n**SnakeYAML** - `org.yaml:snakeyaml`\n\n* **Secure by Default**: No\n* **Recommendation**: Pass an instance of `org.yaml.snakeyaml.constructor.SafeConstructor` to `org.yaml.snakeyaml.Yaml`'s constructor before using it to deserialize untrusted data.\n\n\n**XML Decoder** - `Standard Java Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Do not use with untrusted user input.\n\n\n**ObjectMesssage** - `Java EE/Jakarta EE`\n\n* **Secure by Default**: Depends on the JMS implementation.\n* **Recommendation**: Do not use with untrusted user input.\n\n\n\n## Example\nThe following example calls `readObject` directly on an `ObjectInputStream` that is constructed from untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic MyObject {\n  public int field;\n  MyObject(int field) {\n    this.field = field;\n  }\n}\n\npublic MyObject deserialize(Socket sock) {\n  try(ObjectInputStream in = new ObjectInputStream(sock.getInputStream())) {\n    return (MyObject)in.readObject(); // unsafe\n  }\n}\n\n```\nRewriting the communication protocol to only rely on reading primitive types from the input stream removes the vulnerability.\n\n\n```java\npublic MyObject deserialize(Socket sock) {\n  try(DataInputStream in = new DataInputStream(sock.getInputStream())) {\n    return new MyObject(in.readInt());\n  }\n}\n\n```\n\n## References\n* OWASP vulnerability description: [Deserialization of untrusted data](https://www.owasp.org/index.php/Deserialization_of_untrusted_data).\n* OWASP guidance on deserializing objects: [Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html).\n* Talks by Chris Frohoff & Gabriel Lawrence: [ AppSecCali 2015: Marshalling Pickles - how deserializing objects will ruin your day](http://frohoff.github.io/appseccali-marshalling-pickles/), [OWASP SD: Deserialize My Shorts: Or How I Learned to Start Worrying and Hate Java Object Deserialization](http://frohoff.github.io/owaspsd-deserialize-my-shorts/).\n* Alvaro Muñoz & Christian Schneider, RSAConference 2016: [Serial Killer: Silently Pwning Your Java Endpoints](https://speakerdeck.com/pwntester/serial-killer-silently-pwning-your-java-endpoints).\n* SnakeYaml documentation on deserialization: [SnakeYaml deserialization](https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation#markdown-header-loading-yaml).\n* Hessian deserialization and related gadget chains: [Hessian deserialization](https://paper.seebug.org/1137/).\n* Castor and Hessian java deserialization vulnerabilities: [Castor and Hessian deserialization](https://securitylab.github.com/research/hessian-java-deserialization-castor-vulnerabilities/).\n* Remote code execution in JYaml library: [JYaml deserialization](https://www.cybersecurity-help.cz/vdb/SB2020022512).\n* JsonIO deserialization vulnerabilities: [JsonIO deserialization](https://klezvirus.github.io/Advanced-Web-Hacking/Serialisation/).\n* Research by Moritz Bechler: [Java Unmarshaller Security - Turning your data into code execution](https://www.github.com/mbechler/marshalsec/blob/master/marshalsec.pdf?raw=true)\n* Blog posts by the developer of Jackson libraries: [On Jackson CVEs: Don’t Panic — Here is what you need to know](https://cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062) [Jackson 2.10: Safe Default Typing](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba)\n* Jabsorb documentation on deserialization: [Jabsorb JSON Serializer](https://github.com/Servoy/jabsorb/blob/master/src/org/jabsorb/).\n* Jodd JSON documentation on deserialization: [JoddJson Parser](https://json.jodd.org/parser).\n* RCE in Flexjson: [Flexjson deserialization](https://codewhitesec.blogspot.com/2020/03/liferay-portal-json-vulns.html).\n* Android Intent deserialization vulnerabilities with GSON parser: [Insecure use of JSON parsers](https://blog.oversecured.com/Exploiting-memory-corruption-vulnerabilities-on-Android/#insecure-use-of-json-parsers).\n* Research by Matthias Kaiser: [Pwning Your Java Messaging With Deserialization Vulnerabilities](https://www.blackhat.com/docs/us-16/materials/us-16-Kaiser-Pwning-Your-Java-Messaging-With-Deserialization-Vulnerabilities.pdf).\n* Common Weakness Enumeration: [CWE-502](https://cwe.mitre.org/data/definitions/502.html).\n"
+                },
+                "id": "java/unsafe-deserialization",
+                "name": "java/unsafe-deserialization",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-502",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Deserialization of user-controlled data"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Marking a certificate as valid for a host without checking the certificate hostname allows an attacker to perform a machine-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# Unsafe hostname verification\nIf a `HostnameVerifier` always returns `true` it will not verify the hostname at all. This stops Transport Layer Security (TLS) providing any security and allows an attacker to perform a man-in-the-middle attack against the application.\n\nAn attack might look like this:\n\n1. The program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents an apparently-valid certificate of their choosing.\n1. The `TrustManager` of the program verifies that the certificate has been issued by a trusted certificate authority.\n1. The Java HTTPS library checks whether the certificate has been issued for the host `example.com`. This check fails because the certificate has been issued for a domain controlled by the attacker, for example: `malicious.domain`.\n1. The HTTPS library wants to reject the certificate because the hostname does not match. Before doing this it checks whether a `HostnameVerifier` exists.\n1. Your `HostnameVerifier` is called which returns `true` for any certificate so also for this one.\n1. The program proceeds with the connection since your `HostnameVerifier` accepted it.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use an open `HostnameVerifier`. If you have a configuration problem with TLS/HTTPS, you should always solve the configuration problem instead of using an open verifier.\n\n\n## Example\nIn the first (bad) example, the `HostnameVerifier` always returns `true`. This allows an attacker to perform a man-in-the-middle attack, because any certificate is accepted despite an incorrect hostname. In the second (good) example, the `HostnameVerifier` only returns `true` when the certificate has been correctly checked.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\treturn true; // BAD: accept even if the hostname doesn't match\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\ttry { // GOOD: verify the certificate\n\t\t\t\t\tCertificate[] certs = session.getPeerCertificates();\n\t\t\t\t\tX509Certificate x509 = (X509Certificate) certs[0];\n\t\t\t\t\tcheck(new String[]{host}, x509);\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (SSLException e) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n}\n```\n\n## References\n* Android developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Terse systems blog: [Fixing Hostname Verification](https://tersesystems.com/blog/2014/03/23/fixing-hostname-verification/).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n",
+                  "text": "# Unsafe hostname verification\nIf a `HostnameVerifier` always returns `true` it will not verify the hostname at all. This stops Transport Layer Security (TLS) providing any security and allows an attacker to perform a man-in-the-middle attack against the application.\n\nAn attack might look like this:\n\n1. The program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents an apparently-valid certificate of their choosing.\n1. The `TrustManager` of the program verifies that the certificate has been issued by a trusted certificate authority.\n1. The Java HTTPS library checks whether the certificate has been issued for the host `example.com`. This check fails because the certificate has been issued for a domain controlled by the attacker, for example: `malicious.domain`.\n1. The HTTPS library wants to reject the certificate because the hostname does not match. Before doing this it checks whether a `HostnameVerifier` exists.\n1. Your `HostnameVerifier` is called which returns `true` for any certificate so also for this one.\n1. The program proceeds with the connection since your `HostnameVerifier` accepted it.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use an open `HostnameVerifier`. If you have a configuration problem with TLS/HTTPS, you should always solve the configuration problem instead of using an open verifier.\n\n\n## Example\nIn the first (bad) example, the `HostnameVerifier` always returns `true`. This allows an attacker to perform a man-in-the-middle attack, because any certificate is accepted despite an incorrect hostname. In the second (good) example, the `HostnameVerifier` only returns `true` when the certificate has been correctly checked.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\treturn true; // BAD: accept even if the hostname doesn't match\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\ttry { // GOOD: verify the certificate\n\t\t\t\t\tCertificate[] certs = session.getPeerCertificates();\n\t\t\t\t\tX509Certificate x509 = (X509Certificate) certs[0];\n\t\t\t\t\tcheck(new String[]{host}, x509);\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (SSLException e) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n}\n```\n\n## References\n* Android developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Terse systems blog: [Fixing Hostname Verification](https://tersesystems.com/blog/2014/03/23/fixing-hostname-verification/).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n"
+                },
+                "id": "java/unsafe-hostname-verification",
+                "name": "java/unsafe-hostname-verification",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql",
+                  "security-severity": "5.9",
+                  "tags": [
+                    "external/cwe/cwe-297",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unsafe hostname verification"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "URL forward based on unvalidated user input may cause file information disclosure."
+                },
+                "help": {
+                  "markdown": "# URL forward from a remote source\nDirectly incorporating user input into a URL forward request without validating the input can cause file information disclosure by allowing an attacker to access unauthorized URLs.\n\n\n## Recommendation\nTo guard against untrusted URL forwarding, you should avoid putting user input directly into a forwarded URL. Instead, you should maintain a list of authorized URLs on the server, then choose from that list based on the user input provided.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL forward without validating the input, which may cause file information disclosure. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\npublic class UrlForward extends HttpServlet {\n\tprivate static final String VALID_FORWARD = \"https://cwe.mitre.org/data/definitions/552.html\";\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\t\tthrows ServletException, IOException {\n\t\tServletConfig cfg = getServletConfig();\n\t\tServletContext sc = cfg.getServletContext();\n\n\t\t// BAD: a request parameter is incorporated without validation into a URL forward\n\t\tsc.getRequestDispatcher(request.getParameter(\"target\")).forward(request, response);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_FORWARD.equals(request.getParameter(\"target\"))) {\n\t\t\tsc.getRequestDispatcher(VALID_FORWARD).forward(request, response);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* OWASP: [Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-552](https://cwe.mitre.org/data/definitions/552.html).\n",
+                  "text": "# URL forward from a remote source\nDirectly incorporating user input into a URL forward request without validating the input can cause file information disclosure by allowing an attacker to access unauthorized URLs.\n\n\n## Recommendation\nTo guard against untrusted URL forwarding, you should avoid putting user input directly into a forwarded URL. Instead, you should maintain a list of authorized URLs on the server, then choose from that list based on the user input provided.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL forward without validating the input, which may cause file information disclosure. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\npublic class UrlForward extends HttpServlet {\n\tprivate static final String VALID_FORWARD = \"https://cwe.mitre.org/data/definitions/552.html\";\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\t\tthrows ServletException, IOException {\n\t\tServletConfig cfg = getServletConfig();\n\t\tServletContext sc = cfg.getServletContext();\n\n\t\t// BAD: a request parameter is incorporated without validation into a URL forward\n\t\tsc.getRequestDispatcher(request.getParameter(\"target\")).forward(request, response);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_FORWARD.equals(request.getParameter(\"target\"))) {\n\t\t\tsc.getRequestDispatcher(VALID_FORWARD).forward(request, response);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* OWASP: [Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-552](https://cwe.mitre.org/data/definitions/552.html).\n"
+                },
+                "id": "java/unvalidated-url-forward",
+                "name": "java/unvalidated-url-forward",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-552/UrlForward.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-552",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "URL forward from a remote source"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "URL redirection based on unvalidated user-input may cause redirection to malicious web sites."
+                },
+                "help": {
+                  "markdown": "# URL redirection from remote source\nDirectly incorporating user input into a URL redirect request without validating the input can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\nIf this is not possible, then the user input should be validated in some other way, for example, by verifying that the target URL is on the same host as the current page.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL redirect without validating the input, which facilitates phishing attacks:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // BAD: a request parameter is incorporated without validation into a URL redirect\n    response.sendRedirect(request.getParameter(\"target\"));\n  }\n}\n```\nOne way to remedy the problem is to validate the user input against a known fixed string before doing the redirection:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  private static final List VALID_REDIRECTS = Arrays.asList(\n    \"http://cwe.mitre.org/data/definitions/601.html\",\n    \"http://cwe.mitre.org/data/definitions/79.html\"\n  );\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // GOOD: the request parameter is validated against a known list of strings\n    String target = request.getParameter(\"target\");\n    if (VALID_REDIRECTS.contains(target)) {\n        response.sendRedirect(target);\n    } else {\n        response.sendRedirect(\"/error.html\");\n    }\n  }\n}\n```\nAlternatively, we can check that the target URL does not redirect to a different host by checking that the URL is either relative or on a known good host:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    try {\n      String urlString = request.getParameter(\"page\");\n      URI url = new URI(urlString);\n\n      if (!url.isAbsolute()) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a relative URL\n      }\n\n      if (\"example.org\".equals(url.getHost())) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a known host\n      }\n    } catch (URISyntaxException e) {\n        // handle exception\n    }\n  }\n}\n```\nNote that as written, the above code will allow redirects to URLs on `example.com`, which is harmless but perhaps not intended. You can substitute your own domain (if known) for `example.com` to prevent this.\n\n\n## References\n* OWASP: [ Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Microsoft Docs: [Preventing Open Redirection Attacks (C\\#)](https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n",
+                  "text": "# URL redirection from remote source\nDirectly incorporating user input into a URL redirect request without validating the input can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\nIf this is not possible, then the user input should be validated in some other way, for example, by verifying that the target URL is on the same host as the current page.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL redirect without validating the input, which facilitates phishing attacks:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // BAD: a request parameter is incorporated without validation into a URL redirect\n    response.sendRedirect(request.getParameter(\"target\"));\n  }\n}\n```\nOne way to remedy the problem is to validate the user input against a known fixed string before doing the redirection:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  private static final List VALID_REDIRECTS = Arrays.asList(\n    \"http://cwe.mitre.org/data/definitions/601.html\",\n    \"http://cwe.mitre.org/data/definitions/79.html\"\n  );\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // GOOD: the request parameter is validated against a known list of strings\n    String target = request.getParameter(\"target\");\n    if (VALID_REDIRECTS.contains(target)) {\n        response.sendRedirect(target);\n    } else {\n        response.sendRedirect(\"/error.html\");\n    }\n  }\n}\n```\nAlternatively, we can check that the target URL does not redirect to a different host by checking that the URL is either relative or on a known good host:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    try {\n      String urlString = request.getParameter(\"page\");\n      URI url = new URI(urlString);\n\n      if (!url.isAbsolute()) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a relative URL\n      }\n\n      if (\"example.org\".equals(url.getHost())) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a known host\n      }\n    } catch (URISyntaxException e) {\n        // handle exception\n    }\n  }\n}\n```\nNote that as written, the above code will allow redirects to URLs on `example.com`, which is harmless but perhaps not intended. You can substitute your own domain (if known) for `example.com` to prevent this.\n\n\n## References\n* OWASP: [ Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Microsoft Docs: [Preventing Open Redirection Attacks (C\\#)](https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n"
+                },
+                "id": "java/unvalidated-url-redirection",
+                "name": "java/unvalidated-url-redirection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-601",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "URL redirection from remote source"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "User-controlled bypassing of sensitive methods may allow attackers to avoid passing through authentication systems."
+                },
+                "help": {
+                  "markdown": "# User-controlled bypass of sensitive method\nMany Java constructs enable code statements to be executed conditionally, for example `if` statements and `for` statements. If these statements contain important authentication or login code, and the decision about whether to execute this code is based on user-controlled data, it may be possible for an attacker to bypass security systems by preventing this code from executing.\n\n\n## Recommendation\nNever decide whether to authenticate a user based on data that may be controlled by that user. If necessary, ensure that the data is validated extensively when it is input before any authentication checks are performed.\n\nIt is still possible to have a system that \"remembers\" users, thus not requiring the user to login on every interaction. For example, personalization settings can be applied without authentication because this is not sensitive information. However, users should be allowed to take sensitive actions only when they have been fully authenticated.\n\n\n## Example\nThis example shows two ways of deciding whether to authenticate a user. The first way shows a decision that is based on the value of a cookie. Cookies can be easily controlled by the user, and so this allows a user to become authenticated without providing valid credentials. The second, more secure way shows a decision that is based on looking up the user in a security database.\n\n\n```java\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\n\t// BAD: login is executed only if the value of 'adminCookie' is 'false', \n\t// but 'adminCookie' is controlled by the user\n\tif(adminCookie.getValue()==\"false\")\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\t\n\t// GOOD: use server-side information based on the credentials to decide\n\t// whether user has privileges\n\tboolean isAdmin = queryDbForAdminStatus(user, password);\n\tif(!isAdmin)\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n",
+                  "text": "# User-controlled bypass of sensitive method\nMany Java constructs enable code statements to be executed conditionally, for example `if` statements and `for` statements. If these statements contain important authentication or login code, and the decision about whether to execute this code is based on user-controlled data, it may be possible for an attacker to bypass security systems by preventing this code from executing.\n\n\n## Recommendation\nNever decide whether to authenticate a user based on data that may be controlled by that user. If necessary, ensure that the data is validated extensively when it is input before any authentication checks are performed.\n\nIt is still possible to have a system that \"remembers\" users, thus not requiring the user to login on every interaction. For example, personalization settings can be applied without authentication because this is not sensitive information. However, users should be allowed to take sensitive actions only when they have been fully authenticated.\n\n\n## Example\nThis example shows two ways of deciding whether to authenticate a user. The first way shows a decision that is based on the value of a cookie. Cookies can be easily controlled by the user, and so this allows a user to become authenticated without providing valid credentials. The second, more secure way shows a decision that is based on looking up the user in a security database.\n\n\n```java\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\n\t// BAD: login is executed only if the value of 'adminCookie' is 'false', \n\t// but 'adminCookie' is controlled by the user\n\tif(adminCookie.getValue()==\"false\")\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\t\n\t// GOOD: use server-side information based on the credentials to decide\n\t// whether user has privileges\n\tboolean isAdmin = queryDbForAdminStatus(user, password);\n\tif(!isAdmin)\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n"
+                },
+                "id": "java/user-controlled-bypass",
+                "name": "java/user-controlled-bypass",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-807/ConditionalBypass.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-290",
+                    "external/cwe/cwe-807",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled bypass of sensitive method"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using broken or weak cryptographic algorithms can allow an attacker to compromise security."
+                },
+                "help": {
+                  "markdown": "# Use of a broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n",
+                  "text": "# Use of a broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n"
+                },
+                "id": "java/weak-cryptographic-algorithm",
+                "name": "java/weak-cryptographic-algorithm",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-327",
+                    "external/cwe/cwe-328",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a broken or risky cryptographic algorithm"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Reading from a file which is set as world writable is dangerous because the file may be modified or removed by external actors."
+                },
+                "help": {
+                  "markdown": "# Reading from a world writable file\nReading from a world-writable file is dangerous on a multi-user system because other users may be able to affect program execution by modifying or deleting the file.\n\n\n## Recommendation\nDo not make files explicitly world writable unless the file is intended to be written by multiple users on a multi-user system. In many cases, the file may only need to be writable for the current user.\n\nFor some file systems, there may be alternatives to setting the file to be world writable. For example, POSIX file systems support \"groups\" which may be used to ensure that only subset of all the users can write to the file. Access Control Lists (ACLs) are available for many operating system and file system combinations, and can provide fine-grained read and write support without resorting to world writable permissions.\n\n\n## Example\nIn the following example, we are loading some configuration parameters from a file:\n\n```java\n\nprivate void readConfig(File configFile) {\n  if (!configFile.exists()) {\n    // Create an empty config file\n    configFile.createNewFile();\n    // Make the file writable for all\n    configFile.setWritable(true, false);\n  }\n  // Now read the config\n  loadConfig(configFile);\n}\n\n```\nIf the configuration file does not yet exist, an empty file is created. Creating an empty file can simplify the later code and is a convenience for the user. However, by setting the file to be world writable, we allow any user on the system to modify the configuration, not just the current user. If there may be untrusted users on the system, this is potentially dangerous.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [FIO01-J. Create files with appropriate access permissions](https://wiki.sei.cmu.edu/confluence/display/java/FIO01-J.+Create+files+with+appropriate+access+permissions).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n",
+                  "text": "# Reading from a world writable file\nReading from a world-writable file is dangerous on a multi-user system because other users may be able to affect program execution by modifying or deleting the file.\n\n\n## Recommendation\nDo not make files explicitly world writable unless the file is intended to be written by multiple users on a multi-user system. In many cases, the file may only need to be writable for the current user.\n\nFor some file systems, there may be alternatives to setting the file to be world writable. For example, POSIX file systems support \"groups\" which may be used to ensure that only subset of all the users can write to the file. Access Control Lists (ACLs) are available for many operating system and file system combinations, and can provide fine-grained read and write support without resorting to world writable permissions.\n\n\n## Example\nIn the following example, we are loading some configuration parameters from a file:\n\n```java\n\nprivate void readConfig(File configFile) {\n  if (!configFile.exists()) {\n    // Create an empty config file\n    configFile.createNewFile();\n    // Make the file writable for all\n    configFile.setWritable(true, false);\n  }\n  // Now read the config\n  loadConfig(configFile);\n}\n\n```\nIf the configuration file does not yet exist, an empty file is created. Creating an empty file can simplify the later code and is a convenience for the user. However, by setting the file to be world writable, we allow any user on the system to modify the configuration, not just the current user. If there may be untrusted users on the system, this is potentially dangerous.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [FIO01-J. Create files with appropriate access permissions](https://wiki.sei.cmu.edu/confluence/display/java/FIO01-J.+Create+files+with+appropriate+access+permissions).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n"
+                },
+                "id": "java/world-writable-file-read",
+                "name": "java/world-writable-file-read",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-732/ReadingFromWorldWritableFile.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-732",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Reading from a world writable file"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building an XPath expression from user-controlled sources is vulnerable to insertion of malicious code by the user."
+                },
+                "help": {
+                  "markdown": "# XPath injection\nIf an XPath expression is built using string concatenation, and the components of the concatenation include user input, it makes it very easy for a user to create a malicious XPath expression.\n\n\n## Recommendation\nIf user input must be included in an XPath expression, either sanitize the data or pre-compile the query and use variable references to include the user input.\n\nXPath injection can also be prevented by using XQuery.\n\n\n## Example\nIn the first three examples, the code accepts a name and password specified by the user, and uses this unvalidated and unsanitized value in an XPath expression. This is vulnerable to the user providing special characters or string sequences that change the meaning of the XPath expression to search for different values.\n\nIn the fourth example, the code uses `setXPathVariableResolver` which prevents XPath injection.\n\nThe final two examples are for dom4j. They show an example of XPath injection and one method of preventing it.\n\n\n```java\nfinal String xmlStr = \"\" + \n                        \"   \" + \n                        \"   \" + \n                        \"\";\ntry {\n    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();\n    domFactory.setNamespaceAware(true);\n    DocumentBuilder builder = domFactory.newDocumentBuilder();\n    //Document doc = builder.parse(\"user.xml\");\n    Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));\n\n    XPathFactory factory = XPathFactory.newInstance();\n    XPath xpath = factory.newXPath();\n\n    // Injectable data\n    String user = request.getParameter(\"user\");\n    String pass = request.getParameter(\"pass\");\n    if (user != null && pass != null) {\n        boolean isExist = false;\n\n        // Bad expression\n        String expression1 = \"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\";\n        isExist = (boolean)xpath.evaluate(expression1, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        XPathExpression expression2 = xpath.compile(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\");\n        isExist = (boolean)expression2.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        StringBuffer sb = new StringBuffer(\"/users/user[@name=\");\n        sb.append(user);\n        sb.append(\"' and @pass='\");\n        sb.append(pass);\n        sb.append(\"']\");\n        String query = sb.toString();\n        XPathExpression expression3 = xpath.compile(query);\n        isExist = (boolean)expression3.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Good expression\n        String expression4 = \"/users/user[@name=$user and @pass=$pass]\";\n        xpath.setXPathVariableResolver(v -> {\n        switch (v.getLocalPart()) {\n            case \"user\":\n                return user;\n            case \"pass\":\n                return pass;\n            default:\n                throw new IllegalArgumentException();\n            }\n        });\n        isExist = (boolean)xpath.evaluate(expression4, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n\n        // Bad Dom4j \n        org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();\n        org.dom4j.Document document = reader.read(new InputSource(new StringReader(xmlStr)));\n        isExist = document.selectSingleNode(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\") != null;\n        // or document.selectNodes\n        System.out.println(isExist);\n\n        // Good Dom4j\n        org.jaxen.SimpleVariableContext svc = new org.jaxen.SimpleVariableContext();\n        svc.setVariableValue(\"user\", user);\n        svc.setVariableValue(\"pass\", pass);\n        String xpathString = \"/users/user[@name=$user and @pass=$pass]\";\n        org.dom4j.XPath safeXPath = document.createXPath(xpathString);\n        safeXPath.setVariableContext(svc);\n        isExist = safeXPath.selectSingleNode(document) != null;\n        System.out.println(isExist);\n    }\n} catch (ParserConfigurationException e) {\n\n} catch (SAXException e) {\n\n} catch (XPathExpressionException e) {\n\n} catch (org.dom4j.DocumentException e) {\n\n}\n```\n\n## References\n* OWASP: [Testing for XPath Injection](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/09-Testing_for_XPath_Injection).\n* OWASP: [XPath Injection](https://owasp.org/www-community/attacks/XPATH_Injection).\n* Common Weakness Enumeration: [CWE-643](https://cwe.mitre.org/data/definitions/643.html).\n",
+                  "text": "# XPath injection\nIf an XPath expression is built using string concatenation, and the components of the concatenation include user input, it makes it very easy for a user to create a malicious XPath expression.\n\n\n## Recommendation\nIf user input must be included in an XPath expression, either sanitize the data or pre-compile the query and use variable references to include the user input.\n\nXPath injection can also be prevented by using XQuery.\n\n\n## Example\nIn the first three examples, the code accepts a name and password specified by the user, and uses this unvalidated and unsanitized value in an XPath expression. This is vulnerable to the user providing special characters or string sequences that change the meaning of the XPath expression to search for different values.\n\nIn the fourth example, the code uses `setXPathVariableResolver` which prevents XPath injection.\n\nThe final two examples are for dom4j. They show an example of XPath injection and one method of preventing it.\n\n\n```java\nfinal String xmlStr = \"\" + \n                        \"   \" + \n                        \"   \" + \n                        \"\";\ntry {\n    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();\n    domFactory.setNamespaceAware(true);\n    DocumentBuilder builder = domFactory.newDocumentBuilder();\n    //Document doc = builder.parse(\"user.xml\");\n    Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));\n\n    XPathFactory factory = XPathFactory.newInstance();\n    XPath xpath = factory.newXPath();\n\n    // Injectable data\n    String user = request.getParameter(\"user\");\n    String pass = request.getParameter(\"pass\");\n    if (user != null && pass != null) {\n        boolean isExist = false;\n\n        // Bad expression\n        String expression1 = \"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\";\n        isExist = (boolean)xpath.evaluate(expression1, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        XPathExpression expression2 = xpath.compile(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\");\n        isExist = (boolean)expression2.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        StringBuffer sb = new StringBuffer(\"/users/user[@name=\");\n        sb.append(user);\n        sb.append(\"' and @pass='\");\n        sb.append(pass);\n        sb.append(\"']\");\n        String query = sb.toString();\n        XPathExpression expression3 = xpath.compile(query);\n        isExist = (boolean)expression3.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Good expression\n        String expression4 = \"/users/user[@name=$user and @pass=$pass]\";\n        xpath.setXPathVariableResolver(v -> {\n        switch (v.getLocalPart()) {\n            case \"user\":\n                return user;\n            case \"pass\":\n                return pass;\n            default:\n                throw new IllegalArgumentException();\n            }\n        });\n        isExist = (boolean)xpath.evaluate(expression4, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n\n        // Bad Dom4j \n        org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();\n        org.dom4j.Document document = reader.read(new InputSource(new StringReader(xmlStr)));\n        isExist = document.selectSingleNode(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\") != null;\n        // or document.selectNodes\n        System.out.println(isExist);\n\n        // Good Dom4j\n        org.jaxen.SimpleVariableContext svc = new org.jaxen.SimpleVariableContext();\n        svc.setVariableValue(\"user\", user);\n        svc.setVariableValue(\"pass\", pass);\n        String xpathString = \"/users/user[@name=$user and @pass=$pass]\";\n        org.dom4j.XPath safeXPath = document.createXPath(xpathString);\n        safeXPath.setVariableContext(svc);\n        isExist = safeXPath.selectSingleNode(document) != null;\n        System.out.println(isExist);\n    }\n} catch (ParserConfigurationException e) {\n\n} catch (SAXException e) {\n\n} catch (XPathExpressionException e) {\n\n} catch (org.dom4j.DocumentException e) {\n\n}\n```\n\n## References\n* OWASP: [Testing for XPath Injection](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/09-Testing_for_XPath_Injection).\n* OWASP: [XPath Injection](https://owasp.org/www-community/attacks/XPATH_Injection).\n* Common Weakness Enumeration: [CWE-643](https://cwe.mitre.org/data/definitions/643.html).\n"
+                },
+                "id": "java/xml/xpath-injection",
+                "name": "java/xml/xpath-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-643",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "XPath injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Performing an XSLT transformation with user-controlled stylesheets can lead to information disclosure or execution of arbitrary code."
+                },
+                "help": {
+                  "markdown": "# XSLT transformation with user-controlled stylesheet\nXSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML documents or other formats. Processing unvalidated XSLT stylesheets can allow attackers to read arbitrary files from the filesystem or to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to not process untrusted XSLT stylesheets. If user-provided stylesheets must be processed, enable the secure processing mode.\n\n\n## Example\nIn the following examples, the code accepts an XSLT stylesheet from the user and processes it.\n\nIn the first example, the user-provided XSLT stylesheet is parsed and processed.\n\nIn the second example, secure processing mode is enabled.\n\n\n```java\nimport javax.xml.XMLConstants;\nimport javax.xml.transform.TransformerFactory;\nimport javax.xml.transform.stream.StreamResult;\nimport javax.xml.transform.stream.StreamSource;\n\npublic void transform(Socket socket, String inputXml) throws Exception {\n  StreamSource xslt = new StreamSource(socket.getInputStream());\n  StreamSource xml = new StreamSource(new StringReader(inputXml));\n  StringWriter result = new StringWriter();\n  TransformerFactory factory = TransformerFactory.newInstance();\n\n  // BAD: User provided XSLT stylesheet is processed\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n\n  // GOOD: The secure processing mode is enabled\n  factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n}  \n```\n\n## References\n* Wikipedia: [XSLT](https://en.wikipedia.org/wiki/XSLT).\n* The Java Tutorials: [Transforming XML Data with XSLT](https://docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html).\n* [XSLT Injection Basics](https://blog.hunniccyber.com/ektron-cms-remote-code-execution-xslt-transform-injection-java/).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n",
+                  "text": "# XSLT transformation with user-controlled stylesheet\nXSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML documents or other formats. Processing unvalidated XSLT stylesheets can allow attackers to read arbitrary files from the filesystem or to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to not process untrusted XSLT stylesheets. If user-provided stylesheets must be processed, enable the secure processing mode.\n\n\n## Example\nIn the following examples, the code accepts an XSLT stylesheet from the user and processes it.\n\nIn the first example, the user-provided XSLT stylesheet is parsed and processed.\n\nIn the second example, secure processing mode is enabled.\n\n\n```java\nimport javax.xml.XMLConstants;\nimport javax.xml.transform.TransformerFactory;\nimport javax.xml.transform.stream.StreamResult;\nimport javax.xml.transform.stream.StreamSource;\n\npublic void transform(Socket socket, String inputXml) throws Exception {\n  StreamSource xslt = new StreamSource(socket.getInputStream());\n  StreamSource xml = new StreamSource(new StringReader(inputXml));\n  StringWriter result = new StringWriter();\n  TransformerFactory factory = TransformerFactory.newInstance();\n\n  // BAD: User provided XSLT stylesheet is processed\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n\n  // GOOD: The secure processing mode is enabled\n  factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n}  \n```\n\n## References\n* Wikipedia: [XSLT](https://en.wikipedia.org/wiki/XSLT).\n* The Java Tutorials: [Transforming XML Data with XSLT](https://docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html).\n* [XSLT Injection Basics](https://blog.hunniccyber.com/ektron-cms-remote-code-execution-xslt-transform-injection-java/).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n"
+                },
+                "id": "java/xslt-injection",
+                "name": "java/xslt-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-074/XsltInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-074",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "XSLT transformation with user-controlled stylesheet"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Writing user input directly to a web page allows for a cross-site scripting vulnerability."
+                },
+                "help": {
+                  "markdown": "# Cross-site scripting\nDirectly writing user input (for example, an HTTP request parameter) to a web page, without properly sanitizing the input first, allows for a cross-site scripting vulnerability.\n\n\n## Recommendation\nTo guard against cross-site scripting, consider using contextual output encoding/escaping before writing user input to the page, or one of the other solutions that are mentioned in the reference.\n\n\n## Example\nThe following example shows the `page` parameter being written directly to the page, leaving the website vulnerable to cross-site scripting.\n\n\n```java\npublic class XSS extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: a request parameter is written directly to the Servlet response stream\n\t\tresponse.getWriter().print(\n\t\t\t\t\"The page \\\"\" + request.getParameter(\"page\") + \"\\\" was not found.\");\n\n\t}\n}\n\n```\n\n## References\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Cross-site scripting\nDirectly writing user input (for example, an HTTP request parameter) to a web page, without properly sanitizing the input first, allows for a cross-site scripting vulnerability.\n\n\n## Recommendation\nTo guard against cross-site scripting, consider using contextual output encoding/escaping before writing user input to the page, or one of the other solutions that are mentioned in the reference.\n\n\n## Example\nThe following example shows the `page` parameter being written directly to the page, leaving the website vulnerable to cross-site scripting.\n\n\n```java\npublic class XSS extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: a request parameter is written directly to the Servlet response stream\n\t\tresponse.getWriter().print(\n\t\t\t\t\"The page \\\"\" + request.getParameter(\"page\") + \"\\\" was not found.\");\n\n\t}\n}\n\n```\n\n## References\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/xss",
+                "name": "java/xss",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-079/XSS.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cross-site scripting"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Parsing user-controlled XML documents and allowing expansion of external entity references may lead to disclosure of confidential data or denial of service."
+                },
+                "help": {
+                  "markdown": "# Resolving XML external entity in user-controlled data\nParsing untrusted XML files with a weakly configured XML parser may lead to an XML External Entity (XXE) attack. This type of attack uses external entity references to access arbitrary files on a system, carry out denial of service, or server side request forgery. Even when the result of parsing is not returned to the user, out-of-band data retrieval techniques may allow attackers to steal sensitive data. Denial of services can also be carried out in this situation.\n\nThere are many XML parsers for Java, and most of them are vulnerable to XXE because their default settings enable parsing of external entities. This query currently identifies vulnerable XML parsing from the following parsers: `javax.xml.parsers.DocumentBuilder`, `javax.xml.stream.XMLStreamReader`, `org.jdom.input.SAXBuilder`/`org.jdom2.input.SAXBuilder`, `javax.xml.parsers.SAXParser`,`org.dom4j.io.SAXReader`, `org.xml.sax.XMLReader`, `javax.xml.transform.sax.SAXSource`, `javax.xml.transform.TransformerFactory`, `javax.xml.transform.sax.SAXTransformerFactory`, `javax.xml.validation.SchemaFactory`, `javax.xml.bind.Unmarshaller` and `javax.xml.xpath.XPathExpression`.\n\n\n## Recommendation\nThe best way to prevent XXE attacks is to disable the parsing of any Document Type Declarations (DTDs) in untrusted data. If this is not possible you should disable the parsing of external general entities and external parameter entities. This improves security but the code will still be at risk of denial of service and server side request forgery attacks. Protection against denial of service attacks may also be implemented by setting entity expansion limits, which is done by default in recent JDK and JRE implementations. We recommend visiting OWASP's [XML Entity Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java), finding the specific XML parser, and applying the mitigation listed there. Other mitigations might be sufficient in some cases, but manual verification will be needed, as the query will continue to flag the parser as potentially dangerous.\n\n\n## Example\nThe following example calls `parse` on a `DocumentBuilder` that is not safely configured on untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic void parse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //unsafe\n}\n\n```\nIn this example, the `DocumentBuilder` is created with DTD disabled, securing it against XXE attack.\n\n\n```java\npublic void disableDTDParse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  factory.setFeature(\"http://apache.org/xml/features/disallow-doctype-decl\", true);\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //safe\n}\n\n```\n\n## References\n* OWASP vulnerability description: [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing).\n* OWASP guidance on parsing xml files: [XXE Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java).\n* Paper by Timothy Morgen: [XML Schema, DTD, and Entity Attacks](https://research.nccgroup.com/2014/05/19/xml-schema-dtd-and-entity-attacks-a-compendium-of-known-techniques/)\n* Out-of-band data retrieval: Timur Yunusov & Alexey Osipov, Black hat EU 2013: [XML Out-Of-Band Data Retrieval](https://www.slideshare.net/qqlan/bh-ready-v4).\n* Denial of service attack (Billion laughs): [Billion Laughs.](https://en.wikipedia.org/wiki/Billion_laughs)\n* The Java Tutorials: [Processing Limit Definitions.](https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html)\n* Common Weakness Enumeration: [CWE-611](https://cwe.mitre.org/data/definitions/611.html).\n* Common Weakness Enumeration: [CWE-776](https://cwe.mitre.org/data/definitions/776.html).\n* Common Weakness Enumeration: [CWE-827](https://cwe.mitre.org/data/definitions/827.html).\n",
+                  "text": "# Resolving XML external entity in user-controlled data\nParsing untrusted XML files with a weakly configured XML parser may lead to an XML External Entity (XXE) attack. This type of attack uses external entity references to access arbitrary files on a system, carry out denial of service, or server side request forgery. Even when the result of parsing is not returned to the user, out-of-band data retrieval techniques may allow attackers to steal sensitive data. Denial of services can also be carried out in this situation.\n\nThere are many XML parsers for Java, and most of them are vulnerable to XXE because their default settings enable parsing of external entities. This query currently identifies vulnerable XML parsing from the following parsers: `javax.xml.parsers.DocumentBuilder`, `javax.xml.stream.XMLStreamReader`, `org.jdom.input.SAXBuilder`/`org.jdom2.input.SAXBuilder`, `javax.xml.parsers.SAXParser`,`org.dom4j.io.SAXReader`, `org.xml.sax.XMLReader`, `javax.xml.transform.sax.SAXSource`, `javax.xml.transform.TransformerFactory`, `javax.xml.transform.sax.SAXTransformerFactory`, `javax.xml.validation.SchemaFactory`, `javax.xml.bind.Unmarshaller` and `javax.xml.xpath.XPathExpression`.\n\n\n## Recommendation\nThe best way to prevent XXE attacks is to disable the parsing of any Document Type Declarations (DTDs) in untrusted data. If this is not possible you should disable the parsing of external general entities and external parameter entities. This improves security but the code will still be at risk of denial of service and server side request forgery attacks. Protection against denial of service attacks may also be implemented by setting entity expansion limits, which is done by default in recent JDK and JRE implementations. We recommend visiting OWASP's [XML Entity Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java), finding the specific XML parser, and applying the mitigation listed there. Other mitigations might be sufficient in some cases, but manual verification will be needed, as the query will continue to flag the parser as potentially dangerous.\n\n\n## Example\nThe following example calls `parse` on a `DocumentBuilder` that is not safely configured on untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic void parse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //unsafe\n}\n\n```\nIn this example, the `DocumentBuilder` is created with DTD disabled, securing it against XXE attack.\n\n\n```java\npublic void disableDTDParse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  factory.setFeature(\"http://apache.org/xml/features/disallow-doctype-decl\", true);\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //safe\n}\n\n```\n\n## References\n* OWASP vulnerability description: [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing).\n* OWASP guidance on parsing xml files: [XXE Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java).\n* Paper by Timothy Morgen: [XML Schema, DTD, and Entity Attacks](https://research.nccgroup.com/2014/05/19/xml-schema-dtd-and-entity-attacks-a-compendium-of-known-techniques/)\n* Out-of-band data retrieval: Timur Yunusov & Alexey Osipov, Black hat EU 2013: [XML Out-Of-Band Data Retrieval](https://www.slideshare.net/qqlan/bh-ready-v4).\n* Denial of service attack (Billion laughs): [Billion Laughs.](https://en.wikipedia.org/wiki/Billion_laughs)\n* The Java Tutorials: [Processing Limit Definitions.](https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html)\n* Common Weakness Enumeration: [CWE-611](https://cwe.mitre.org/data/definitions/611.html).\n* Common Weakness Enumeration: [CWE-776](https://cwe.mitre.org/data/definitions/776.html).\n* Common Weakness Enumeration: [CWE-827](https://cwe.mitre.org/data/definitions/827.html).\n"
+                },
+                "id": "java/xxe",
+                "name": "java/xxe",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-611/XXE.ql",
+                  "security-severity": "9.1",
+                  "tags": [
+                    "external/cwe/cwe-611",
+                    "external/cwe/cwe-776",
+                    "external/cwe/cwe-827",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Resolving XML external entity in user-controlled data"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Extracting files from a malicious ZIP file, or similar type of archive, without validating that the destination file path is within the destination directory can allow an attacker to unexpectedly gain access to resources."
+                },
+                "help": {
+                  "markdown": "# Arbitrary file access during archive extraction (\"Zip Slip\")\nExtracting files from a malicious zip file, or similar type of archive, is at risk of directory traversal attacks if filenames from the archive are not properly validated.\n\nZip archives contain archive entries representing each file in the archive. These entries include a file path for the entry, but these file paths are not restricted and may contain unexpected special elements such as the directory traversal element (`..`). If these file paths are used to create a filesystem path, then a file operation may happen in an unexpected location. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nFor example, if a zip file contains a file entry `..\\sneaky-file`, and the zip file is extracted to the directory `c:\\output`, then naively combining the paths would result in an output file path of `c:\\output\\..\\sneaky-file`, which would cause the file to be written to `c:\\sneaky-file`.\n\n\n## Recommendation\nEnsure that output paths constructed from zip archive entries are validated to prevent writing files to unexpected locations.\n\nThe recommended way of writing an output file from a zip archive entry is to verify that the normalized full path of the output file starts with a prefix that matches the destination directory. Path normalization can be done with either `java.io.File.getCanonicalFile()` or `java.nio.file.Path.normalize()`. Prefix checking can be done with `String.startsWith(..)`, but it is better to use `java.nio.file.Path.startsWith(..)`, as the latter works on complete path segments.\n\nAnother alternative is to validate archive entries against a whitelist of expected files.\n\n\n## Example\nIn this example, a file path taken from a zip archive item entry is combined with a destination directory. The result is used as the destination file path without verifying that the result is within the destination directory. If provided with a zip file containing an archive path like `..\\sneaky-file`, then this file would be written outside the destination directory.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    FileOutputStream fos = new FileOutputStream(file); // BAD\n    // ... write entry to fos ...\n}\n\n```\nTo fix this vulnerability, we need to verify that the normalized `file` still has `destinationDir` as its prefix, and throw an exception if this is not the case.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    if (!file.toPath().normalize().startsWith(destinationDir.toPath()))\n        throw new Exception(\"Bad zip entry\");\n    FileOutputStream fos = new FileOutputStream(file); // OK\n    // ... write entry to fos ...\n}\n\n```\n\n## References\n* Snyk: [Zip Slip Vulnerability](https://snyk.io/research/zip-slip-vulnerability).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n",
+                  "text": "# Arbitrary file access during archive extraction (\"Zip Slip\")\nExtracting files from a malicious zip file, or similar type of archive, is at risk of directory traversal attacks if filenames from the archive are not properly validated.\n\nZip archives contain archive entries representing each file in the archive. These entries include a file path for the entry, but these file paths are not restricted and may contain unexpected special elements such as the directory traversal element (`..`). If these file paths are used to create a filesystem path, then a file operation may happen in an unexpected location. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nFor example, if a zip file contains a file entry `..\\sneaky-file`, and the zip file is extracted to the directory `c:\\output`, then naively combining the paths would result in an output file path of `c:\\output\\..\\sneaky-file`, which would cause the file to be written to `c:\\sneaky-file`.\n\n\n## Recommendation\nEnsure that output paths constructed from zip archive entries are validated to prevent writing files to unexpected locations.\n\nThe recommended way of writing an output file from a zip archive entry is to verify that the normalized full path of the output file starts with a prefix that matches the destination directory. Path normalization can be done with either `java.io.File.getCanonicalFile()` or `java.nio.file.Path.normalize()`. Prefix checking can be done with `String.startsWith(..)`, but it is better to use `java.nio.file.Path.startsWith(..)`, as the latter works on complete path segments.\n\nAnother alternative is to validate archive entries against a whitelist of expected files.\n\n\n## Example\nIn this example, a file path taken from a zip archive item entry is combined with a destination directory. The result is used as the destination file path without verifying that the result is within the destination directory. If provided with a zip file containing an archive path like `..\\sneaky-file`, then this file would be written outside the destination directory.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    FileOutputStream fos = new FileOutputStream(file); // BAD\n    // ... write entry to fos ...\n}\n\n```\nTo fix this vulnerability, we need to verify that the normalized `file` still has `destinationDir` as its prefix, and throw an exception if this is not the case.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    if (!file.toPath().normalize().startsWith(destinationDir.toPath()))\n        throw new Exception(\"Bad zip entry\");\n    FileOutputStream fos = new FileOutputStream(file); // OK\n    // ... write entry to fos ...\n}\n\n```\n\n## References\n* Snyk: [Zip Slip Vulnerability](https://snyk.io/research/zip-slip-vulnerability).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n"
+                },
+                "id": "java/zipslip",
+                "name": "java/zipslip",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-022",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Arbitrary file access during archive extraction (\"Zip Slip\")"
+                }
+              }
+            ],
+            "semanticVersion": "1.1.9+de325133c7a95d84489acdf5a6ced07886ff5c6d"
+          },
+          {
+            "name": "codeql/java-all",
+            "semanticVersion": "4.2.1+de325133c7a95d84489acdf5a6ced07886ff5c6d"
+          },
+          {
+            "name": "codeql/threat-models",
+            "semanticVersion": "1.0.12+de325133c7a95d84489acdf5a6ced07886ff5c6d"
+          }
+        ]
+      },
+      "versionControlProvenance": [
+        {
+          "branch": "refs/heads/master",
+          "repositoryUri": "https://github.com/nahsra/roller",
+          "revisionId": "ff265200a04605d080623fd54623285160460a72"
+        }
+      ]
+    }
+  ],
+  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
+  "version": "2.1.0"
+}
diff --git a/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.after b/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.after
new file mode 100644
index 000000000..9b3077768
--- /dev/null
+++ b/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.after
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2005, Dave Johnson
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.roller.weblogger.util;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.commons.codec.binary.Base64;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+/**
+ * Utilties to support WSSE authentication.
+ * @author Dave Johnson
+ */
+public class WSSEUtilities {
+    public static synchronized String generateDigest(
+            byte[] nonce, byte[] created, byte[] password) {
+        String result = null;
+        try {
+            MessageDigest digester = MessageDigest.getInstance("SHA-256");
+            digester.reset();
+            digester.update(nonce);
+            digester.update(created);
+            digester.update(password);
+            byte[] digest = digester.digest();
+            result = base64Encode(digest);
+        }
+        catch (NoSuchAlgorithmException e) {
+            result = null;
+        }
+        return result;
+    }
+    public static byte[] base64Decode(String value) throws IOException {
+        return Base64.decodeBase64(value.getBytes(UTF_8));
+    }
+    public static String base64Encode(byte[] value) {
+        return new String(Base64.encodeBase64(value));
+    }
+    public static String generateWSSEHeader(String userName, String password)
+    throws UnsupportedEncodingException {
+
+        byte[] nonceBytes = Long.toString(new Date().getTime()).getBytes();
+        String nonce = WSSEUtilities.base64Encode(nonceBytes);
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+        String created = sdf.format(new Date());
+
+        String digest = WSSEUtilities.generateDigest(
+                nonceBytes, created.getBytes(UTF_8), password.getBytes(UTF_8));
+
+        StringBuilder header = new StringBuilder("UsernameToken Username=\"");
+        header.append(userName);
+        header.append("\", ");
+        header.append("PasswordDigest=\"");
+        header.append(digest);
+        header.append("\", ");
+        header.append("Nonce=\"");
+        header.append(nonce);
+        header.append("\", ");
+        header.append("Created=\"");
+        header.append(created);
+        header.append("\"");
+        return header.toString();
+    }
+}
diff --git a/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.before b/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.before
new file mode 100644
index 000000000..c941b587f
--- /dev/null
+++ b/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/WSSEUtilities.java.before
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2005, Dave Johnson
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.roller.weblogger.util;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.commons.codec.binary.Base64;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+/**
+ * Utilties to support WSSE authentication.
+ * @author Dave Johnson
+ */
+public class WSSEUtilities {
+    public static synchronized String generateDigest(
+            byte[] nonce, byte[] created, byte[] password) {
+        String result = null;
+        try {
+            MessageDigest digester = MessageDigest.getInstance("SHA");
+            digester.reset();
+            digester.update(nonce);
+            digester.update(created);
+            digester.update(password);
+            byte[] digest = digester.digest();
+            result = base64Encode(digest);
+        }
+        catch (NoSuchAlgorithmException e) {
+            result = null;
+        }
+        return result;
+    }
+    public static byte[] base64Decode(String value) throws IOException {
+        return Base64.decodeBase64(value.getBytes(UTF_8));
+    }
+    public static String base64Encode(byte[] value) {
+        return new String(Base64.encodeBase64(value));
+    }
+    public static String generateWSSEHeader(String userName, String password)
+    throws UnsupportedEncodingException {
+
+        byte[] nonceBytes = Long.toString(new Date().getTime()).getBytes();
+        String nonce = WSSEUtilities.base64Encode(nonceBytes);
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+        String created = sdf.format(new Date());
+
+        String digest = WSSEUtilities.generateDigest(
+                nonceBytes, created.getBytes(UTF_8), password.getBytes(UTF_8));
+
+        StringBuilder header = new StringBuilder("UsernameToken Username=\"");
+        header.append(userName);
+        header.append("\", ");
+        header.append("PasswordDigest=\"");
+        header.append(digest);
+        header.append("\", ");
+        header.append("Nonce=\"");
+        header.append(nonce);
+        header.append("\", ");
+        header.append("Created=\"");
+        header.append(created);
+        header.append("\"");
+        return header.toString();
+    }
+}
diff --git a/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/out.sarif b/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/out.sarif
new file mode 100644
index 000000000..f1de47b89
--- /dev/null
+++ b/core-codemods/src/test/resources/codeql-potentially-unsafe-crypto-algorithm/out.sarif
@@ -0,0 +1,153017 @@
+{
+  "runs": [
+    {
+      "artifacts": [
+        {
+          "location": {
+            "index": 0,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 1,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 2,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+          }
+        },
+        {
+          "location": {
+            "index": 3,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 4,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+          }
+        },
+        {
+          "location": {
+            "index": 5,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 6,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+          }
+        },
+        {
+          "location": {
+            "index": 7,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+          }
+        },
+        {
+          "location": {
+            "index": 8,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 9,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+          }
+        },
+        {
+          "location": {
+            "index": 10,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+          }
+        },
+        {
+          "location": {
+            "index": 11,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+          }
+        },
+        {
+          "location": {
+            "index": 12,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+          }
+        },
+        {
+          "location": {
+            "index": 13,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+          }
+        },
+        {
+          "location": {
+            "index": 14,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+          }
+        },
+        {
+          "location": {
+            "index": 15,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 16,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+          }
+        },
+        {
+          "location": {
+            "index": 17,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+          }
+        },
+        {
+          "location": {
+            "index": 18,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+          }
+        },
+        {
+          "location": {
+            "index": 19,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 20,
+            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+          }
+        },
+        {
+          "location": {
+            "index": 21,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 22,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+          }
+        },
+        {
+          "location": {
+            "index": 23,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+          }
+        },
+        {
+          "location": {
+            "index": 24,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+          }
+        },
+        {
+          "location": {
+            "index": 25,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+          }
+        },
+        {
+          "location": {
+            "index": 26,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 27,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 28,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 29,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+          }
+        },
+        {
+          "location": {
+            "index": 30,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+          }
+        },
+        {
+          "location": {
+            "index": 31,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+          }
+        },
+        {
+          "location": {
+            "index": 32,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+          }
+        },
+        {
+          "location": {
+            "index": 33,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+          }
+        },
+        {
+          "location": {
+            "index": 34,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 35,
+            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+          }
+        },
+        {
+          "location": {
+            "index": 36,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+          }
+        },
+        {
+          "location": {
+            "index": 37,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+          }
+        },
+        {
+          "location": {
+            "index": 38,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+          }
+        },
+        {
+          "location": {
+            "index": 39,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 40,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 41,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+          }
+        },
+        {
+          "location": {
+            "index": 42,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+          }
+        },
+        {
+          "location": {
+            "index": 43,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+          }
+        },
+        {
+          "location": {
+            "index": 44,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+          }
+        },
+        {
+          "location": {
+            "index": 45,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+          }
+        },
+        {
+          "location": {
+            "index": 46,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+          }
+        },
+        {
+          "location": {
+            "index": 47,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java"
+          }
+        },
+        {
+          "location": {
+            "index": 48,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 49,
+            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+          }
+        },
+        {
+          "location": {
+            "index": 50,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+          }
+        },
+        {
+          "location": {
+            "index": 51,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+          }
+        },
+        {
+          "location": {
+            "index": 52,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 53,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 54,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 55,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+          }
+        },
+        {
+          "location": {
+            "index": 56,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+          }
+        },
+        {
+          "location": {
+            "index": 57,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+          }
+        },
+        {
+          "location": {
+            "index": 58,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+          }
+        },
+        {
+          "location": {
+            "index": 59,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+          }
+        },
+        {
+          "location": {
+            "index": 60,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+          }
+        },
+        {
+          "location": {
+            "index": 61,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/PingTarget.java"
+          }
+        },
+        {
+          "location": {
+            "index": 62,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+          }
+        },
+        {
+          "location": {
+            "index": 63,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 64,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+          }
+        },
+        {
+          "location": {
+            "index": 65,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 66,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+          }
+        },
+        {
+          "location": {
+            "index": 67,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+          }
+        },
+        {
+          "location": {
+            "index": 68,
+            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+          }
+        },
+        {
+          "location": {
+            "index": 69,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+          }
+        },
+        {
+          "location": {
+            "index": 70,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 71,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 72,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 73,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 74,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 75,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 76,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 77,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+          }
+        },
+        {
+          "location": {
+            "index": 78,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 79,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 80,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 81,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 82,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 83,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 84,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+          }
+        },
+        {
+          "location": {
+            "index": 85,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 86,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 87,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 88,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 89,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 90,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 91,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+          }
+        },
+        {
+          "location": {
+            "index": 92,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+          }
+        },
+        {
+          "location": {
+            "index": 93,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+          }
+        },
+        {
+          "location": {
+            "index": 94,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+          }
+        },
+        {
+          "location": {
+            "index": 95,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 96,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 97,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+          }
+        },
+        {
+          "location": {
+            "index": 98,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+          }
+        },
+        {
+          "location": {
+            "index": 99,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 100,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+          }
+        },
+        {
+          "location": {
+            "index": 101,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+          }
+        },
+        {
+          "location": {
+            "index": 102,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+          }
+        },
+        {
+          "location": {
+            "index": 103,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+          }
+        },
+        {
+          "location": {
+            "index": 104,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 105,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+          }
+        },
+        {
+          "location": {
+            "index": 106,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+          }
+        },
+        {
+          "location": {
+            "index": 107,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 108,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+          }
+        },
+        {
+          "location": {
+            "index": 109,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 110,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+          }
+        },
+        {
+          "location": {
+            "index": 111,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+          }
+        },
+        {
+          "location": {
+            "index": 112,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+          }
+        },
+        {
+          "location": {
+            "index": 113,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+          }
+        },
+        {
+          "location": {
+            "index": 114,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+          }
+        },
+        {
+          "location": {
+            "index": 115,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+          }
+        },
+        {
+          "location": {
+            "index": 116,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+          }
+        },
+        {
+          "location": {
+            "index": 117,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+          }
+        },
+        {
+          "location": {
+            "index": 118,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+          }
+        },
+        {
+          "location": {
+            "index": 119,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+          }
+        },
+        {
+          "location": {
+            "index": 120,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+          }
+        },
+        {
+          "location": {
+            "index": 121,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+          }
+        },
+        {
+          "location": {
+            "index": 122,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+          }
+        },
+        {
+          "location": {
+            "index": 123,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java"
+          }
+        },
+        {
+          "location": {
+            "index": 124,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+          }
+        },
+        {
+          "location": {
+            "index": 125,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java"
+          }
+        },
+        {
+          "location": {
+            "index": 126,
+            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+          }
+        },
+        {
+          "location": {
+            "index": 127,
+            "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+          }
+        },
+        {
+          "location": {
+            "index": 128,
+            "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+          }
+        }
+      ],
+      "automationDetails": {
+        "id": ".github/workflows/codeql-analysis.yml:analyze/language:java/"
+      },
+      "conversion": {
+        "tool": {
+          "driver": {
+            "name": "GitHub Code Scanning"
+          }
+        }
+      },
+      "properties": {
+        "codeqlConfigSummary": {
+          "queries": [
+            {
+              "type": "builtinSuite",
+              "uses": "security-extended"
+            }
+          ]
+        }
+      },
+      "results": [
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "folderId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 0,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "folderId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 0,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 131,
+                            "startColumn": 44,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 0,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 131,
+                            "startColumn": 44,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 0,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 131,
+                            "startColumn": 44,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanetizedFolderID"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 0,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 59,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c498a306-76e0-47f9-9463-15219a9b5131",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 133,
+                  "startColumn": 59,
+                  "startLine": 133
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This header depends on a [user-provided value](1), which may cause a response-splitting vulnerability."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a43352b656264e63:1"
+          },
+          "properties": {
+            "github/alertNumber": 8,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/8"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/http-response-splitting",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 38
+          },
+          "ruleId": "java/http-response-splitting"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 1,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 127,
+                            "startColumn": 27,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "callback"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 1,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 155,
+                            "startColumn": 44,
+                            "startLine": 155
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "413edc96-87e6-4268-aea7-c7363dd8e440",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 1,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 155,
+                  "startColumn": 44,
+                  "startLine": 155
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This header depends on a [user-provided value](1), which may cause a response-splitting vulnerability."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "41fbc440cf27dfd0:1"
+          },
+          "properties": {
+            "github/alertNumber": 9,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/9"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 127,
+                  "startColumn": 27,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/http-response-splitting",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 38
+          },
+          "ruleId": "java/http-response-splitting"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomAlphanumeric(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 161,
+                            "startColumn": 39,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 162,
+                            "startColumn": 36,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newPassword : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 119,
+                            "startColumn": 31,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newPassword"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 121,
+                            "startColumn": 36,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomAlphanumeric(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 110,
+                            "startColumn": 39,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 111,
+                            "startColumn": 44,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newPassword : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 119,
+                            "startColumn": 31,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newPassword"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 121,
+                            "startColumn": 36,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3d1dd5ee-a85c-4f5f-bc3b-11850bf129c5",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 2,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 121,
+                  "startColumn": 36,
+                  "startLine": 121
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential Insecure randomness due to a [Insecure randomness source.](1).\nPotential Insecure randomness due to a [Insecure randomness source.](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ebe2869d4f29cd7e:1"
+          },
+          "properties": {
+            "github/alertNumber": 10,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/10"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Insecure randomness source."
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 161,
+                  "startColumn": 39,
+                  "startLine": 161
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "Insecure randomness source."
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 110,
+                  "startColumn": 39,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/insecure-randomness",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 48
+          },
+          "ruleId": "java/insecure-randomness"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomAlphanumeric(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 370,
+                            "startColumn": 35,
+                            "startLine": 370
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 371,
+                            "startColumn": 39,
+                            "startLine": 371
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "passwordText : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 121,
+                            "startColumn": 33,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "passwordText"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 122,
+                            "startColumn": 29,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b3ef0f14-e0ef-4bcf-81ff-a44c55983f9a",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 5,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                },
+                "region": {
+                  "endColumn": 41,
+                  "endLine": 122,
+                  "startColumn": 29,
+                  "startLine": 122
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential Insecure randomness due to a [Insecure randomness source.](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a706f813f09b282d:1"
+          },
+          "properties": {
+            "github/alertNumber": 11,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/11"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Insecure randomness source."
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 370,
+                  "startColumn": 35,
+                  "startLine": 370
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/insecure-randomness",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 48
+          },
+          "ruleId": "java/insecure-randomness"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomAlphanumeric(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 370,
+                            "startColumn": 35,
+                            "startLine": 370
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "randomString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 372,
+                            "startColumn": 42,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "passwordConfirm : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 129,
+                            "startColumn": 36,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "passwordConfirm"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 130,
+                            "startColumn": 32,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c9fcc815-1dd2-4645-9828-afc3711a60c3",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 5,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 130,
+                  "startColumn": 32,
+                  "startLine": 130
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential Insecure randomness due to a [Insecure randomness source.](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a7e8967f80765bad:1"
+          },
+          "properties": {
+            "github/alertNumber": 12,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/12"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Insecure randomness source."
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 370,
+                  "startColumn": 35,
+                  "startLine": 370
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/insecure-randomness",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 48
+          },
+          "ruleId": "java/insecure-randomness"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 1,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 127,
+                            "startColumn": 27,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "callback"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 1,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 155,
+                            "startColumn": 44,
+                            "startLine": 155
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "24ce1c5a-2764-4315-bc16-8c2359f77597",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 1,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 155,
+                  "startColumn": 44,
+                  "startLine": 155
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Untrusted URL redirection depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "41fbc440cf27dfd0:1"
+          },
+          "properties": {
+            "github/alertNumber": 13,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/13"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/oauth/AuthorizationServlet.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 127,
+                  "startColumn": 27,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/unvalidated-url-redirection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 108
+          },
+          "ruleId": "java/unvalidated-url-redirection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 166,
+                            "startColumn": 23,
+                            "startLine": 166
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 311,
+                            "startColumn": 16,
+                            "startLine": 311
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computePrevMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 188,
+                            "startColumn": 41,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 190,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 207,
+                            "startColumn": 29,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 207,
+                            "startColumn": 13,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 311,
+                            "startColumn": 16,
+                            "startLine": 311
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computePrevMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 188,
+                            "startColumn": 41,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 190,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 273,
+                            "startColumn": 23,
+                            "startLine": 273
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 311,
+                            "startColumn": 16,
+                            "startLine": 311
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computePrevMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 188,
+                            "startColumn": 41,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 190,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 237,
+                            "startColumn": 25,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 237,
+                            "startColumn": 9,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 311,
+                            "startColumn": 16,
+                            "startLine": 311
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computePrevMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 188,
+                            "startColumn": 41,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 190,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b8d55258-1cc7-481d-bb13-f323fc6f5f7b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 190,
+                  "startColumn": 26,
+                  "startLine": 188
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cccb6385104d4c00:1"
+          },
+          "properties": {
+            "github/alertNumber": 14,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/14"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 166,
+                            "startColumn": 23,
+                            "startLine": 166
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 306,
+                            "startColumn": 16,
+                            "startLine": 306
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeNextMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 194,
+                            "startColumn": 42,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 196,
+                            "startColumn": 26,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 207,
+                            "startColumn": 29,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 207,
+                            "startColumn": 13,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 306,
+                            "startColumn": 16,
+                            "startLine": 306
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeNextMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 194,
+                            "startColumn": 42,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 196,
+                            "startColumn": 26,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 273,
+                            "startColumn": 23,
+                            "startLine": 273
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 306,
+                            "startColumn": 16,
+                            "startLine": 306
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeNextMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 194,
+                            "startColumn": 42,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 196,
+                            "startColumn": 26,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 237,
+                            "startColumn": 25,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 237,
+                            "startColumn": 9,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 306,
+                            "startColumn": 16,
+                            "startLine": 306
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeNextMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 194,
+                            "startColumn": 42,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 196,
+                            "startColumn": 26,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ccfbc6bd-5815-4972-af11-45b2ed7fc423",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 61,
+                  "endLine": 196,
+                  "startColumn": 26,
+                  "startLine": 194
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "df1362749a3e519c:1"
+          },
+          "properties": {
+            "github/alertNumber": 15,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/15"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 134,
+                            "endLine": 319,
+                            "startColumn": 19,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 324,
+                            "startColumn": 13,
+                            "startLine": 324
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeTodayMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 247,
+                            "startColumn": 35,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 250,
+                            "startColumn": 22,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 207,
+                            "startColumn": 29,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 207,
+                            "startColumn": 13,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 322,
+                            "startColumn": 19,
+                            "startLine": 322
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 324,
+                            "startColumn": 13,
+                            "startLine": 324
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeTodayMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 247,
+                            "startColumn": 35,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 250,
+                            "startColumn": 22,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 134,
+                            "endLine": 319,
+                            "startColumn": 19,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 324,
+                            "startColumn": 13,
+                            "startLine": 324
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeTodayMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 247,
+                            "startColumn": 35,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 250,
+                            "startColumn": 22,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 237,
+                            "startColumn": 25,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 237,
+                            "startColumn": 9,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 322,
+                            "startColumn": 19,
+                            "startLine": 322
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 324,
+                            "startColumn": 13,
+                            "startLine": 324
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeTodayMonthUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 247,
+                            "startColumn": 35,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 250,
+                            "startColumn": 22,
+                            "startLine": 247
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "977907bf-b617-4041-92a2-c608fddbfe4d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 250,
+                  "startColumn": 22,
+                  "startLine": 247
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "871c3cf166627615:1"
+          },
+          "properties": {
+            "github/alertNumber": 16,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/16"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 24,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 95,
+                            "startColumn": 13,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 106,
+                            "startColumn": 31,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 106,
+                            "startColumn": 21,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 230,
+                            "startColumn": 63,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 94,
+                            "endLine": 272,
+                            "startColumn": 80,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dayUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 98,
+                            "startColumn": 28,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 98,
+                            "startColumn": 17,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 230,
+                            "startColumn": 63,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 94,
+                            "endLine": 272,
+                            "startColumn": 80,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 20,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 94,
+                            "startColumn": 9,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 106,
+                            "startColumn": 31,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 106,
+                            "startColumn": 21,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 230,
+                            "startColumn": 63,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 94,
+                            "endLine": 272,
+                            "startColumn": 80,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dayUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 98,
+                            "startColumn": 28,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 98,
+                            "startColumn": 17,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 230,
+                            "startColumn": 63,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 94,
+                            "endLine": 272,
+                            "startColumn": 80,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8d609a04-8ac0-4e4b-8a74-ee3f97705fee",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 276,
+                  "startColumn": 23,
+                  "startLine": 276
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f797cd6a2e95a76a:1"
+          },
+          "properties": {
+            "github/alertNumber": 17,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/17"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 166,
+                            "startColumn": 23,
+                            "startLine": 166
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 230,
+                            "startColumn": 58,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 272,
+                            "startColumn": 68,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 283,
+                            "startColumn": 22,
+                            "startLine": 283
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 207,
+                            "startColumn": 29,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 207,
+                            "startColumn": 13,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 230,
+                            "startColumn": 58,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 272,
+                            "startColumn": 68,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 283,
+                            "startColumn": 22,
+                            "startLine": 283
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 273,
+                            "startColumn": 23,
+                            "startLine": 273
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 230,
+                            "startColumn": 58,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 272,
+                            "startColumn": 68,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 283,
+                            "startColumn": 22,
+                            "startLine": 283
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 237,
+                            "startColumn": 25,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 237,
+                            "startColumn": 9,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 230,
+                            "startColumn": 58,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 272,
+                            "startColumn": 68,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 283,
+                            "startColumn": 22,
+                            "startLine": 283
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "cb179b8f-1f44-4c66-b1b6-0d575e8b14d0",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 283,
+                  "startColumn": 22,
+                  "startLine": 283
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d06c87887323661e:1"
+          },
+          "properties": {
+            "github/alertNumber": 18,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/18"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 24,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 95,
+                            "startColumn": 13,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 106,
+                            "startColumn": 31,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 106,
+                            "startColumn": 21,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 228,
+                            "startColumn": 54,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 298,
+                            "startColumn": 71,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 302,
+                            "startColumn": 23,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dayUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 98,
+                            "startColumn": 28,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 98,
+                            "startColumn": 17,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 228,
+                            "startColumn": 54,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 298,
+                            "startColumn": 71,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 302,
+                            "startColumn": 23,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 20,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 94,
+                            "startColumn": 9,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 106,
+                            "startColumn": 31,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 106,
+                            "startColumn": 21,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 228,
+                            "startColumn": 54,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 298,
+                            "startColumn": 71,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 302,
+                            "startColumn": 23,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dayUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 98,
+                            "startColumn": 28,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 98,
+                            "startColumn": 17,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 127,
+                            "startColumn": 23,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 131,
+                            "startColumn": 16,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 216,
+                            "startColumn": 38,
+                            "startLine": 216
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 228,
+                            "startColumn": 54,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 298,
+                            "startColumn": 71,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "content"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 302,
+                            "startColumn": 23,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b00e10d5-5581-4b55-8703-9a43efa760b5",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 302,
+                  "startColumn": 23,
+                  "startLine": 302
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f797b1b59b078d8f:1"
+          },
+          "properties": {
+            "github/alertNumber": 19,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/19"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 138,
+                            "startColumn": 26,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 181,
+                            "startColumn": 16,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 166,
+                            "startColumn": 23,
+                            "startLine": 166
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 228,
+                            "startColumn": 49,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 298,
+                            "startColumn": 59,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 308,
+                            "startColumn": 22,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 207,
+                            "startColumn": 29,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 207,
+                            "startColumn": 13,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 243,
+                            "startColumn": 16,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 276,
+                            "startColumn": 23,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 228,
+                            "startColumn": 49,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 298,
+                            "startColumn": 59,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 308,
+                            "startColumn": 22,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 182,
+                            "startColumn": 25,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 182,
+                            "startColumn": 9,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 212,
+                            "startColumn": 16,
+                            "startLine": 212
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogCollectionURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 144,
+                            "endLine": 273,
+                            "startColumn": 23,
+                            "startLine": 273
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 12,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 281,
+                            "startColumn": 16,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 228,
+                            "startColumn": 49,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 298,
+                            "startColumn": 59,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 308,
+                            "startColumn": 22,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 237,
+                            "startColumn": 25,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 237,
+                            "startColumn": 9,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathinfo : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 260,
+                            "startColumn": 16,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogPageURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 154,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 11,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 171,
+                            "startColumn": 16,
+                            "startLine": 171
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "computeUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 215,
+                            "startColumn": 34,
+                            "startLine": 215
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 228,
+                            "startColumn": 49,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 298,
+                            "startColumn": 59,
+                            "startLine": 298
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 7,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 308,
+                            "startColumn": 22,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ad8e230a-a0d9-41f2-8e34-6ce267242137",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 7,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 308,
+                  "startColumn": 22,
+                  "startLine": 307
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d90bf8993f560aa:1"
+          },
+          "properties": {
+            "github/alertNumber": 20,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/20"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 72,
+                            "startColumn": 26,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 87,
+                            "startColumn": 13,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 5,
+                            "endLine": 87,
+                            "startColumn": 3,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 97,
+                            "startColumn": 10,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 97,
+                            "startColumn": 10,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHtml(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 15,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 66,
+                            "startColumn": 21,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 73,
+                            "startColumn": 26,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 94,
+                            "startColumn": 13,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 5,
+                            "endLine": 94,
+                            "startColumn": 3,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sb : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 97,
+                            "startColumn": 10,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 97,
+                            "startColumn": 10,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHtml(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 15,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 66,
+                            "startColumn": 21,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "50361d2b-b32f-43ff-bdbf-9305e326acd9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 15,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentAuthenticatorServlet.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 66,
+                  "startColumn": 21,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cross-site scripting vulnerability due to a [user-provided value](1).\nCross-site scripting vulnerability due to a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e41b363d572cf6d8:1"
+          },
+          "properties": {
+            "github/alertNumber": 21,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/21"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 72,
+                  "startColumn": 26,
+                  "startLine": 72
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 73,
+                  "startColumn": 26,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/xss",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 114
+          },
+          "ruleId": "java/xss"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "opmlFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 50,
+                            "startColumn": 18,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "opmlFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getOpmlFile(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 81,
+                            "startColumn": 37,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d4b093e7-7f81-401a-8dc6-d7d4dde45958",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 17,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 81,
+                  "startColumn": 37,
+                  "startLine": 81
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This path depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cf23dfd372a61ea3:1"
+          },
+          "properties": {
+            "github/alertNumber": 22,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/22"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 50,
+                  "startColumn": 18,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/path-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 67
+          },
+          "ruleId": "java/path-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "opmlFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 50,
+                            "startColumn": 18,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "opmlFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getOpmlFile(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 86,
+                            "startColumn": 50,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b8c2026d-080f-4154-92ff-e377d8b5ea0d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 17,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 86,
+                  "startColumn": 50,
+                  "startLine": 86
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This path depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "103f70b0007fdfad:1"
+          },
+          "properties": {
+            "github/alertNumber": 23,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/23"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 50,
+                  "startColumn": 18,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/path-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 67
+          },
+          "ruleId": "java/path-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "opmlFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 50,
+                            "startColumn": 18,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "opmlFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getOpmlFile(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 112,
+                            "startColumn": 21,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e305e5d4-3699-4c4f-8e16-42f22c937f11",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 17,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 112,
+                  "startColumn": 21,
+                  "startLine": 112
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This path depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9a91c0ae5a3ea9d:1"
+          },
+          "properties": {
+            "github/alertNumber": 24,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/24"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 50,
+                  "startColumn": 18,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/path-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 67
+          },
+          "ruleId": "java/path-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFiles : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFiles : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 266,
+                            "startColumn": 16,
+                            "startLine": 266
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUploadedFiles(...) : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 139,
+                            "startColumn": 30,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 147,
+                            "startColumn": 48,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77fbfcd2-d7b8-4eef-be68-e91f1fa3d446",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 18,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 147,
+                  "startColumn": 48,
+                  "startLine": 147
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This path depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "77597f482b4d5d50:1"
+          },
+          "properties": {
+            "github/alertNumber": 25,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/25"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/path-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 67
+          },
+          "ruleId": "java/path-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFiles : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.uploadedFiles : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 173,
+                            "startColumn": 45,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 175,
+                            "startColumn": 33,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFiles : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.uploadedFiles : File[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 175,
+                            "startColumn": 33,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 175,
+                            "startColumn": 33,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "50d5c664-691f-4339-89f9-c872bdc2d37f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 18,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 175,
+                  "startColumn": 33,
+                  "startLine": 175
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This path depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2b2bb9cdd3635201:1"
+          },
+          "properties": {
+            "github/alertNumber": 26,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/26"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/path-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 67
+          },
+          "ruleId": "java/path-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 47,
+                            "startColumn": 18,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.uploadedFile"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 129,
+                            "startColumn": 49,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 47,
+                            "startColumn": 18,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 125,
+                            "startColumn": 21,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.uploadedFile"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 129,
+                            "startColumn": 49,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "uploadedFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 47,
+                            "startColumn": 18,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.uploadedFile : File"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 126,
+                            "startColumn": 41,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.uploadedFile"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 129,
+                            "startColumn": 49,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2c46a696-dc8e-4fae-9331-76a7b8516a31",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 19,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 129,
+                  "startColumn": 49,
+                  "startLine": 129
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This path depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9449418b46954eb:1"
+          },
+          "properties": {
+            "github/alertNumber": 27,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/27"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 47,
+                  "startColumn": 18,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/path-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 67
+          },
+          "ruleId": "java/path-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 996,
+                            "startColumn": 34,
+                            "startLine": 996
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 1007,
+                            "startColumn": 34,
+                            "startLine": 1007
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2c44ef16-ee39-43f4-a3b9-dd079f2e62a6",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 62,
+                  "startColumn": 52,
+                  "startLine": 62
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with 'b' and with many repetitions of 'b'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f22c138a13ff3a37:1"
+          },
+          "properties": {
+            "github/alertNumber": 28,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/28"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 38,
+                  "startColumn": 33,
+                  "startLine": 38
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 996,
+                            "startColumn": 34,
+                            "startLine": 996
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 1007,
+                            "startColumn": 34,
+                            "startLine": 1007
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d5f446d9-a37d-4b62-a4aa-ece4c8cd315d",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 24,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 61,
+                  "startColumn": 51,
+                  "startLine": 61
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '' and with many repetitions of '
a'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "80ff14788737bca8:1"
+          },
+          "properties": {
+            "github/alertNumber": 29,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/29"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 38,
+                  "startColumn": 22,
+                  "startLine": 38
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 38,
+                  "startColumn": 29,
+                  "startLine": 38
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 996,
+                            "startColumn": 34,
+                            "startLine": 996
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 1007,
+                            "startColumn": 34,
+                            "startLine": 1007
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 57,
+                            "startColumn": 45,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 61,
+                            "startColumn": 51,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 61,
+                            "startColumn": 31,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_matcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 66,
+                            "startColumn": 32,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pre_inner"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 24,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 68,
+                            "startColumn": 57,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "46c2da2a-ba26-4d85-b11f-596590f9b2c1",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 24,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 68,
+                  "startColumn": 57,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '' and with many repetitions of 'a'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d309d833fb2b46b:1"
+          },
+          "properties": {
+            "github/alertNumber": 30,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/30"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 41,
+                  "startColumn": 24,
+                  "startLine": 41
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/EncodePreTagsPlugin.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 41,
+                  "startColumn": 31,
+                  "startLine": 41
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "786674fd-a4f9-486d-bf33-72687af16673",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8a8c526b-7a2e-47e2-b7a3-0a25b01cd810",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 77,
+                  "endLine": 179,
+                  "startColumn": 68,
+                  "startLine": 179
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings with many repetitions of ' '.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings with many repetitions of ' '."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7eba83359081407:1"
+          },
+          "properties": {
+            "github/alertNumber": 32,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/32"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 81,
+                  "endLine": 66,
+                  "startColumn": 77,
+                  "startLine": 66
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "76456cac-0fc2-4595-a262-d8cc1b049544",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 235,
+                  "startColumn": 67,
+                  "startLine": 235
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings with many repetitions of '!'.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings with many repetitions of '!'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f77ea2ce3b67490a:1"
+          },
+          "properties": {
+            "github/alertNumber": 33,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/33"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 68,
+                  "startColumn": 67,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 413,
+                            "startColumn": 17,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 82,
+                            "startColumn": 40,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 109,
+                            "startColumn": 19,
+                            "startLine": 109
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openIdUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 110,
+                            "startColumn": 16,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getOpenIdUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 82,
+                            "startColumn": 40,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openidurl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 86,
+                            "startColumn": 47,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openIdUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 131,
+                            "startColumn": 30,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openIdUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 132,
+                            "startColumn": 63,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 413,
+                            "startColumn": 28,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 413,
+                            "startColumn": 17,
+                            "startLine": 413
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 162,
+                            "startColumn": 40,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenBody : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 179,
+                            "startColumn": 68,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 179,
+                            "startColumn": 42,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "attributes : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 186,
+                            "startColumn": 38,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "val : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 235,
+                            "startColumn": 67,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 235,
+                            "startColumn": 46,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styles : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 240,
+                            "startColumn": 53,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "styleValue"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 249,
+                            "startColumn": 83,
+                            "startLine": 249
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "159eeb73-66aa-4f3d-b824-593b19b75d2a",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 249,
+                  "startColumn": 83,
+                  "startLine": 249
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](2) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](4) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](5) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](6) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](7) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('.\nThis [regular expression](1) that depends on a [user-provided value](8) may run slow on strings with many repetitions of 'a'.\nThis [regular expression](3) that depends on a [user-provided value](8) may run slow on strings starting with 'burl(\"' and with many repetitions of 'burl(\"('."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d2f751956bb0d070:1"
+          },
+          "properties": {
+            "github/alertNumber": 34,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/34"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 75,
+                  "endLine": 70,
+                  "startColumn": 73,
+                  "startLine": 70
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 103,
+                  "endLine": 70,
+                  "startColumn": 98,
+                  "startLine": 70
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 8,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 290,
+                            "startColumn": 103,
+                            "startLine": 290
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "73093385-e2a8-4d7a-98ba-cd762f11c9cf",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 106,
+                  "endLine": 290,
+                  "startColumn": 103,
+                  "startLine": 290
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings starting with '<' and with many repetitions of '<'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ea89bbca86ba4590:1"
+          },
+          "properties": {
+            "github/alertNumber": 35,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/35"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 64,
+                  "startColumn": 65,
+                  "startLine": 64
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 143,
+                            "startColumn": 13,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 154,
+                            "startColumn": 17,
+                            "startLine": 154
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 156,
+                            "startColumn": 34,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 45,
+                            "startColumn": 25,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 4,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 78,
+                            "startColumn": 13,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 136,
+                            "startColumn": 34,
+                            "startLine": 136
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 142,
+                            "startColumn": 32,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "screenName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 143,
+                            "startColumn": 64,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 103,
+                            "startColumn": 17,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 86,
+                            "startColumn": 17,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 87,
+                            "startColumn": 28,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 97,
+                            "startColumn": 25,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 29,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogBookmark.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 98,
+                            "startColumn": 58,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 134,
+                            "startColumn": 58,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 134,
+                            "startColumn": 34,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "endMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 305,
+                            "startColumn": 30,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 308,
+                            "startColumn": 40,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "741b50ba-467e-4868-8dac-3c9ef0447000",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 25,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 308,
+                  "startColumn": 40,
+                  "startLine": 308
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [regular expression](1) that depends on a [user-provided value](2) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](3) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](4) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](5) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](6) may run slow on strings starting with '<' and with many repetitions of '<'.\nThis [regular expression](1) that depends on a [user-provided value](7) may run slow on strings starting with '<' and with many repetitions of '<'."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7fd366a6b63e95c3:1"
+          },
+          "properties": {
+            "github/alertNumber": 36,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/36"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "regular expression"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 64,
+                  "startColumn": 65,
+                  "startLine": 64
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 45,
+                  "startColumn": 25,
+                  "startLine": 45
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 7,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/FolderEdit.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 46,
+                  "startColumn": 24,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/polynomial-redos",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 68
+          },
+          "ruleId": "java/polynomial-redos"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 102,
+                            "startColumn": 23,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 102,
+                            "startColumn": 48,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 44,
+                            "startColumn": 54,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 44,
+                            "startColumn": 31,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mailtoMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 46,
+                            "startColumn": 28,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 49,
+                            "startColumn": 36,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a25e3d9b-649b-4941-b955-38a73c737dee",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 49,
+                  "startColumn": 36,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1).\nThis regular expression is constructed from a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "77bb988d556b367:1"
+          },
+          "properties": {
+            "github/alertNumber": 37,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/37"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 102,
+                            "startColumn": 23,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 102,
+                            "startColumn": 48,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 64,
+                            "startColumn": 25,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "at"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 66,
+                            "startColumn": 36,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8d146220-954f-47f5-810d-f1e27809be9c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 66,
+                  "startColumn": 36,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1).\nThis regular expression is constructed from a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e97d22a8b2a0b291:1"
+          },
+          "properties": {
+            "github/alertNumber": 38,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/38"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 897,
+                            "startColumn": 19,
+                            "startLine": 897
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 302,
+                            "startColumn": 19,
+                            "startLine": 302
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 303,
+                            "startColumn": 16,
+                            "startLine": 303
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 898,
+                            "startColumn": 23,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1018,
+                            "startColumn": 19,
+                            "startLine": 1018
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 980,
+                            "startColumn": 19,
+                            "startLine": 980
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 990,
+                            "startColumn": 34,
+                            "startLine": 990
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 904,
+                            "startColumn": 19,
+                            "startLine": 904
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 274,
+                            "startColumn": 19,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "summary : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 275,
+                            "startColumn": 16,
+                            "startLine": 275
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSummary(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 905,
+                            "startColumn": 23,
+                            "startLine": 905
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 943,
+                            "startColumn": 27,
+                            "startLine": 943
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 102,
+                            "startColumn": 23,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 31,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/PluginManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 102,
+                            "startColumn": 48,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 68,
+                            "startColumn": 26,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 960,
+                            "startColumn": 59,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 65,
+                            "startColumn": 45,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 23,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/ObfuscateEmailPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 66,
+                            "startColumn": 38,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 41,
+                            "startColumn": 38,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceFirst(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 49,
+                            "startColumn": 19,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 52,
+                            "startColumn": 31,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 61,
+                            "startColumn": 41,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 62,
+                            "startColumn": 52,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 62,
+                            "startColumn": 30,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailMatch : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 68,
+                            "startColumn": 48,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dot"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 20,
+                            "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 71,
+                            "startColumn": 36,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d29b0cf5-db5b-4d43-b5c3-f1617b06bd87",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 20,
+                  "uri": "app/src/main/java/org/apache/roller/util/RegexUtil.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 71,
+                  "startColumn": 36,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1).\nThis regular expression is constructed from a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9713a8da9d6dd391:1"
+          },
+          "properties": {
+            "github/alertNumber": 39,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/39"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 55,
+                            "startColumn": 30,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 204,
+                            "startColumn": 16,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 195,
+                            "startColumn": 47,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogConfigBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 34,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 101,
+                            "startColumn": 19,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.bannedwordslist : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 34,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfigBean.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 16,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBannedwordslist(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 33,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 195,
+                            "startColumn": 47,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bannedwordslist : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 427,
+                            "startColumn": 9,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 431,
+                            "startColumn": 53,
+                            "startLine": 431
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new StringTokenizer(...) : StringTokenizer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 431,
+                            "startColumn": 33,
+                            "startLine": 431
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toker : StringTokenizer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 433,
+                            "startColumn": 28,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "nextToken(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 433,
+                            "startColumn": 28,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 433,
+                            "startColumn": 28,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 438,
+                            "startColumn": 48,
+                            "startLine": 438
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "54c3d5ef-3a2a-4786-a6e7-ef9a43941469",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 32,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 438,
+                  "startColumn": 48,
+                  "startLine": 438
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This regular expression is constructed from a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "41fca1ccdb5c516f:1"
+          },
+          "properties": {
+            "github/alertNumber": 40,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/40"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogConfig.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 55,
+                  "startColumn": 30,
+                  "startLine": 55
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/regex-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 73
+          },
+          "ruleId": "java/regex-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 93,
+                            "startColumn": 30,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 228,
+                            "startColumn": 32,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 230,
+                            "startColumn": 68,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "create(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 230,
+                            "startColumn": 57,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 93,
+                            "startColumn": 30,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 228,
+                            "startColumn": 32,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 230,
+                            "startColumn": 68,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "create(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 230,
+                            "startColumn": 57,
+                            "startLine": 230
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "67cfd420-d358-4683-aab5-12db2c9f4652",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 230,
+                  "startColumn": 57,
+                  "startLine": 230
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential server-side request forgery due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "248fddc681a75a01:1"
+          },
+          "properties": {
+            "github/alertNumber": 41,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/41"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/ssrf",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 82
+          },
+          "ruleId": "java/ssrf"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 57,
+                            "startColumn": 65,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new URL(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 57,
+                            "startColumn": 57,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b84116d9-777c-4efb-90a2-09d3437d768b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 57,
+                  "startColumn": 57,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Potential server-side request forgery due to a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c240ab2d5b41ea5f:1"
+          },
+          "properties": {
+            "github/alertNumber": 42,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/42"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/ssrf",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 82
+          },
+          "ruleId": "java/ssrf"
+        },
+        {
+          "correlationGuid": "802c217d-515a-4eb2-9c11-4037b8710b37",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 40,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 147,
+                  "startColumn": 24,
+                  "startLine": 147
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "[Error information](1) can be exposed to an external user."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7c1f69188f18e239:1"
+          },
+          "properties": {
+            "github/alertNumber": 43,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/43"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Error information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 142,
+                  "startColumn": 25,
+                  "startLine": 142
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/error-message-exposure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 34
+          },
+          "ruleId": "java/error-message-exposure"
+        },
+        {
+          "correlationGuid": "7952e851-1c30-464b-9dec-b95dac8a4672",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 40,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 221,
+                  "startColumn": 24,
+                  "startLine": 221
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "[Error information](1) can be exposed to an external user.\n[Error information](2) can be exposed to an external user."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "517a7a49b664a801:1"
+          },
+          "properties": {
+            "github/alertNumber": 44,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/44"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "Error information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 142,
+                  "startColumn": 25,
+                  "startLine": 142
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "Error information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/TrackbackServlet.java"
+                },
+                "region": {
+                  "endColumn": 35,
+                  "endLine": 214,
+                  "startColumn": 21,
+                  "startLine": 214
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/error-message-exposure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 34
+          },
+          "ruleId": "java/error-message-exposure"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "value : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 447,
+                            "startColumn": 69,
+                            "startLine": 447
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "30f90aeb-80a9-4d07-9b19-4abf7e8f8bee",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 173,
+                  "startColumn": 31,
+                  "startLine": 173
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file.\nThis [potentially sensitive information](4) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b258de7695f5dec0:1"
+          },
+          "properties": {
+            "github/alertNumber": 47,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/47"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 432,
+                  "startColumn": 32,
+                  "startLine": 432
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 92,
+                            "startColumn": 25,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newUser : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 111,
+                            "startColumn": 31,
+                            "startLine": 111
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 432,
+                            "startColumn": 32,
+                            "startLine": 432
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "value : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 433,
+                            "startColumn": 25,
+                            "startLine": 433
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 42,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 447,
+                            "startColumn": 69,
+                            "startLine": 447
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "30a706fe-267d-4dc1-b6cf-a5c026098825",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 206,
+                  "startColumn": 23,
+                  "startLine": 206
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file.\nThis [potentially sensitive information](4) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd2a1ec6a8b7b405:1"
+          },
+          "properties": {
+            "github/alertNumber": 48,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/48"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 432,
+                  "startColumn": 32,
+                  "startLine": 432
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "67df50b5-3068-4100-9239-4df136ea9322",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 377,
+                  "startColumn": 23,
+                  "startLine": 377
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cc5d9e321a21ccd1:1"
+          },
+          "properties": {
+            "github/alertNumber": 49,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/49"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 28,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 347,
+                            "startColumn": 17,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 348,
+                            "startColumn": 17,
+                            "startLine": 348
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77f6883b-94bd-46f5-a257-6558bfb0d70c",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 6,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 82,
+                  "endLine": 287,
+                  "startColumn": 21,
+                  "startLine": 287
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7530e208e45d24:1"
+          },
+          "properties": {
+            "github/alertNumber": 50,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/50"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 440,
+                            "startColumn": 33,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 440,
+                            "startColumn": 17,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [Return] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 427,
+                            "startColumn": 33,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 72,
+                            "startColumn": 47,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 77,
+                            "startColumn": 66,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 349,
+                            "startColumn": 21,
+                            "startLine": 349
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 350,
+                            "startColumn": 37,
+                            "startLine": 350
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 384,
+                            "startColumn": 59,
+                            "startLine": 384
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 387,
+                            "startColumn": 28,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rule : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 393,
+                            "startColumn": 39,
+                            "startLine": 393
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 417,
+                            "startColumn": 35,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 440,
+                            "startColumn": 33,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 440,
+                            "startColumn": 17,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [Return] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 427,
+                            "startColumn": 33,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 92,
+                            "startColumn": 43,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 95,
+                            "startColumn": 68,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "moreStringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 312,
+                            "startColumn": 22,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "moreStringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 325,
+                            "startColumn": 32,
+                            "startLine": 325
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 325,
+                            "startColumn": 13,
+                            "startLine": 325
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 328,
+                            "startColumn": 34,
+                            "startLine": 328
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 384,
+                            "startColumn": 59,
+                            "startLine": 384
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 387,
+                            "startColumn": 28,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rule : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 409,
+                            "startColumn": 43,
+                            "startLine": 409
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 417,
+                            "startColumn": 35,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 440,
+                            "startColumn": 33,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 440,
+                            "startColumn": 17,
+                            "startLine": 440
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [Return] : List [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 427,
+                            "startColumn": 33,
+                            "startLine": 427
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 75,
+                            "startColumn": 81,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 43,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/BannedwordslistChecker.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 77,
+                            "startColumn": 66,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 349,
+                            "startColumn": 21,
+                            "startLine": 349
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringRules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 350,
+                            "startColumn": 37,
+                            "startLine": 350
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 384,
+                            "startColumn": 59,
+                            "startLine": 384
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rules : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 387,
+                            "startColumn": 28,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rule : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 417,
+                            "startColumn": 48,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 32,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 417,
+                            "startColumn": 35,
+                            "startLine": 417
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "08675dab-9c70-416e-962f-7f7e3e3b67c9",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 32,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 417,
+                  "startColumn": 35,
+                  "startLine": 417
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "23f38d8a6fbde26d:1"
+          },
+          "properties": {
+            "github/alertNumber": 51,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/51"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Bannedwordslist.java"
+                },
+                "region": {
+                  "endColumn": 38,
+                  "endLine": 440,
+                  "startColumn": 33,
+                  "startLine": 440
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 968,
+                            "startColumn": 16,
+                            "startLine": 968
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 898,
+                            "startColumn": 16,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTransformedText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 1011,
+                            "startColumn": 52,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "da4d7ae6-6f80-407e-b108-7a3cca7bbfdd",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 22,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 120,
+                  "startColumn": 19,
+                  "startLine": 120
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "fb28e345672306f2:1"
+          },
+          "properties": {
+            "github/alertNumber": 52,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/52"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "matcher(...) : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 133,
+                            "startColumn": 36,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "startMatcher : Matcher"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toLowerCase(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tag : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 291,
+                            "startColumn": 39,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags [post update] : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 291,
+                            "startColumn": 25,
+                            "startLine": 291
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "openTags : Stack [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pop(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 357,
+                            "startColumn": 32,
+                            "startLine": 357
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 358,
+                            "startColumn": 24,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 358,
+                            "startColumn": 13,
+                            "startLine": 358
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 359,
+                            "startColumn": 13,
+                            "startLine": 359
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 39,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 28,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 347,
+                            "startColumn": 17,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 348,
+                            "startColumn": 17,
+                            "startLine": 348
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanToken : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 347,
+                            "startColumn": 39,
+                            "startLine": 347
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fe15a938-be5c-4951-b09a-d5659cb877ef",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 46,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 594,
+                  "startColumn": 31,
+                  "startLine": 594
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This [potentially sensitive information](1) is written to a log file.\nThis [potentially sensitive information](2) is written to a log file.\nThis [potentially sensitive information](3) is written to a log file."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "822a9d43166c586a:1"
+          },
+          "properties": {
+            "github/alertNumber": 53,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/53"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 133,
+                  "startColumn": 60,
+                  "startLine": 133
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 343,
+                  "startColumn": 39,
+                  "startLine": 343
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "potentially sensitive information"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                },
+                "region": {
+                  "endColumn": 47,
+                  "endLine": 347,
+                  "startColumn": 39,
+                  "startLine": 347
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/sensitive-log",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 76
+          },
+          "ruleId": "java/sensitive-log"
+        },
+        {
+          "correlationGuid": "c3895d1d-1d4d-48b2-ad20-5ca4c174415e",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 47,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 38,
+                  "startColumn": 38,
+                  "startLine": 38
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Cryptographic algorithm [SHA](1) may not be secure, consider using a different algorithm."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b56e53fdf7dd4c93:1"
+          },
+          "properties": {
+            "github/alertNumber": 54,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/54"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "SHA"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/WSSEUtilities.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 38,
+                  "startColumn": 64,
+                  "startLine": 38
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/potentially-weak-cryptographic-algorithm",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 70
+          },
+          "ruleId": "java/potentially-weak-cryptographic-algorithm"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 119,
+                            "startColumn": 41,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "page"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 138,
+                            "startColumn": 73,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 119,
+                            "startColumn": 41,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "page"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 138,
+                            "startColumn": 73,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "45fb1afb-27af-4c4b-bbd9-edefc41bc8c5",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 48,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 83,
+                  "endLine": 138,
+                  "startColumn": 73,
+                  "startLine": 138
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This arithmetic expression depends on a [user-provided value](1), potentially causing an underflow.\nThis arithmetic expression depends on a [user-provided value](1), potentially causing an overflow."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "af0255107030c17b:1"
+          },
+          "properties": {
+            "github/alertNumber": 55,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/55"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 119,
+                  "startColumn": 41,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/tainted-arithmetic",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 88
+          },
+          "ruleId": "java/tainted-arithmetic"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 119,
+                            "startColumn": 41,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "page"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 48,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 196,
+                            "startColumn": 78,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c7fc61b6-af15-4bb3-95da-005dcbf2db38",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 48,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 86,
+                  "endLine": 196,
+                  "startColumn": 78,
+                  "startLine": 196
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This arithmetic expression depends on a [user-provided value](1), potentially causing an overflow."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9c3fce4c4e83e29b:1"
+          },
+          "properties": {
+            "github/alertNumber": 56,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/56"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/tagdata/TagDataServlet.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 119,
+                  "startColumn": 41,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/tainted-arithmetic",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 88
+          },
+          "ruleId": "java/tainted-arithmetic"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c19e39ee-9f4a-48a0-a970-790e9504a3e2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 90,
+                  "startColumn": 19,
+                  "startLine": 90
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2e0591e88ae3e31f:1"
+          },
+          "properties": {
+            "github/alertNumber": 57,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/57"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 128,
+                            "startColumn": 28,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 129,
+                            "startColumn": 24,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 129,
+                            "startColumn": 9,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 128,
+                            "startColumn": 17,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 102,
+                            "startColumn": 9,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 86,
+                            "startColumn": 20,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getFeedURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 86,
+                            "startColumn": 20,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 86,
+                            "startColumn": 9,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 23,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 128,
+                            "startColumn": 28,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 129,
+                            "startColumn": 24,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 129,
+                            "startColumn": 9,
+                            "startLine": 129
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 128,
+                            "startColumn": 17,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub [post update] : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 102,
+                            "startColumn": 9,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 112,
+                            "startColumn": 31,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Subscription [feedUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 125,
+                            "startColumn": 16,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getFeedURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 112,
+                            "startColumn": 31,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "siteUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 137,
+                            "startColumn": 28,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "siteUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 138,
+                            "startColumn": 24,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 137,
+                            "startColumn": 17,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub [post update] : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 112,
+                            "startColumn": 13,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newSub : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 87,
+                            "startColumn": 20,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 133,
+                            "startColumn": 19,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Subscription [siteUrl] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "siteUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSiteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 87,
+                            "startColumn": 20,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 87,
+                            "startColumn": 9,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 49,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/Subscription.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 93,
+                            "startColumn": 16,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 126,
+                            "startColumn": 23,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "848e6843-72bc-4dfc-9056-b3a48bf1dd34",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 126,
+                  "startColumn": 23,
+                  "startLine": 126
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "28e49ad3cae636c7:1"
+          },
+          "properties": {
+            "github/alertNumber": 58,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/58"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 74,
+                            "startColumn": 44,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 83,
+                            "startColumn": 43,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "208f3a77-2dd2-41fd-b0a1-3b80d74f555b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 35,
+                  "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 148,
+                  "startColumn": 27,
+                  "startLine": 148
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ebe90d4273ef4125:1"
+          },
+          "properties": {
+            "github/alertNumber": 59,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/59"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 135,
+                            "startColumn": 33,
+                            "startLine": 135
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 165,
+                            "startColumn": 57,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 165,
+                            "startColumn": 57,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 137,
+                            "startColumn": 20,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 57,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestedName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 163,
+                            "startColumn": 13,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b92aa000-9492-4e23-90e9-3f82f2d6b299",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 179,
+                  "startColumn": 23,
+                  "startLine": 179
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1ae2218079ed9057:1"
+          },
+          "properties": {
+            "github/alertNumber": 60,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/60"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 54,
+                  "startColumn": 20,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 372,
+                            "startColumn": 31,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 68,
+                            "startColumn": 17,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 372,
+                            "startColumn": 31,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 372,
+                            "startColumn": 31,
+                            "startLine": 372
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bbf6a34e-cb54-44ef-b29e-f39d74a6df0d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 372,
+                  "startColumn": 31,
+                  "startLine": 372
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f936562e7da7288c:1"
+          },
+          "properties": {
+            "github/alertNumber": 61,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/61"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 374,
+                            "startColumn": 30,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 68,
+                            "startColumn": 17,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 374,
+                            "startColumn": 30,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 85,
+                            "startColumn": 19,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 86,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourceId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 96,
+                            "startColumn": 44,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 353,
+                            "startColumn": 35,
+                            "startLine": 353
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 374,
+                            "startColumn": 30,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8437ef63-91b5-438e-bdbd-b8d9a03a73b9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 374,
+                  "startColumn": 30,
+                  "startLine": 374
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d37007eb67dc4f46:1"
+          },
+          "properties": {
+            "github/alertNumber": 62,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/62"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 88,
+                            "startColumn": 25,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 386,
+                            "startColumn": 13,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 55,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 48,
+                            "startColumn": 20,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 55,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+                          },
+                          "region": {
+                            "endColumn": 102,
+                            "endLine": 88,
+                            "startColumn": 84,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 386,
+                            "startColumn": 13,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 52,
+                            "startColumn": 20,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 206,
+                            "startColumn": 44,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 386,
+                            "startColumn": 13,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 18,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 87,
+                            "startColumn": 62,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 385,
+                            "startColumn": 59,
+                            "startLine": 385
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 390,
+                            "startColumn": 64,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 390,
+                            "startColumn": 64,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 50,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 390,
+                            "startColumn": 19,
+                            "startLine": 390
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "0c61579e-5ba2-450f-9afa-6dd66ae0c5b0",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 50,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAMediaFileManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 390,
+                  "startColumn": 19,
+                  "startLine": 390
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3).\nThis log entry depends on a [user-provided value](4)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "80ca2e76d1f7b33b:1"
+          },
+          "properties": {
+            "github/alertNumber": 63,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/63"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileAdd.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 65,
+                  "startColumn": 20,
+                  "startLine": 65
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileImageChooser.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 48,
+                  "startColumn": 20,
+                  "startLine": 48
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 52,
+                  "startColumn": 20,
+                  "startLine": 52
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 53,
+                            "startColumn": 19,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 54,
+                            "startColumn": 16,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 89,
+                            "startColumn": 31,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 167,
+                            "startColumn": 16,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 92,
+                            "startColumn": 43,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 173,
+                            "startColumn": 31,
+                            "startLine": 173
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c6e1ae5b-1290-4093-8d4f-97957133a626",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 173,
+                  "startColumn": 31,
+                  "startLine": 173
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3).\nThis log entry depends on a [user-provided value](4).\nThis log entry depends on a [user-provided value](5).\nThis log entry depends on a [user-provided value](6)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b258de7695f5dec0:1"
+          },
+          "properties": {
+            "github/alertNumber": 64,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/64"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 418,
+                  "startColumn": 29,
+                  "startLine": 418
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 467,
+                  "startColumn": 33,
+                  "startLine": 467
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 101,
+                            "startColumn": 50,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 53,
+                            "startColumn": 19,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 54,
+                            "startColumn": 16,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 407,
+                            "startColumn": 43,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 89,
+                            "startColumn": 31,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 248,
+                            "startColumn": 87,
+                            "startLine": 248
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 167,
+                            "startColumn": 16,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 92,
+                            "startColumn": 43,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 132,
+                            "startColumn": 35,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 133,
+                            "startColumn": 34,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 157,
+                            "startColumn": 35,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 206,
+                            "startColumn": 23,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c63d13a8-1b41-4bda-92dd-ac2570302903",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 206,
+                  "startColumn": 23,
+                  "startLine": 206
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3).\nThis log entry depends on a [user-provided value](4).\nThis log entry depends on a [user-provided value](5).\nThis log entry depends on a [user-provided value](6)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd2a1ec6a8b7b405:1"
+          },
+          "properties": {
+            "github/alertNumber": 65,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/65"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 4,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            },
+            {
+              "id": 5,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 418,
+                  "startColumn": 29,
+                  "startLine": 418
+                }
+              }
+            },
+            {
+              "id": 6,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 467,
+                  "startColumn": 33,
+                  "startLine": 467
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 177,
+                            "startColumn": 33,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 263,
+                            "startColumn": 16,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 94,
+                            "startColumn": 30,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 62,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 95,
+                            "startColumn": 26,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 95,
+                            "startColumn": 9,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 94,
+                            "startColumn": 17,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user [post update] : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : UserEdit [user, userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 174,
+                            "startColumn": 21,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : UserEdit [user, userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 186,
+                            "startColumn": 52,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 355,
+                            "startColumn": 59,
+                            "startLine": 355
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 90,
+                            "startColumn": 19,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [userName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 377,
+                            "startColumn": 52,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 41,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 377,
+                            "startColumn": 23,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f4f9401b-7060-44c3-b861-82bcbaf74883",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 41,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 377,
+                  "startColumn": 23,
+                  "startLine": 377
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cc5d9e321a21ccd1:1"
+          },
+          "properties": {
+            "github/alertNumber": 66,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/66"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 56,
+                            "startColumn": 24,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 250,
+                            "startColumn": 16,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTarget(...) : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 107,
+                            "endLine": 167,
+                            "startColumn": 92,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 101,
+                            "startColumn": 39,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTarget : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 103,
+                            "startColumn": 32,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PingTarget"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 61,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/PingTarget.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 123,
+                            "startColumn": 19,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 61,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/PingTarget.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 124,
+                            "startColumn": 16,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 103,
+                            "startColumn": 32,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 126,
+                            "endLine": 167,
+                            "startColumn": 109,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 101,
+                            "startColumn": 62,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 545,
+                            "startColumn": 19,
+                            "startLine": 545
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 546,
+                            "startColumn": 78,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 69,
+                            "startColumn": 32,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 69,
+                            "startColumn": 32,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 69,
+                            "startColumn": 9,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 546,
+                            "startColumn": 16,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 126,
+                            "endLine": 167,
+                            "startColumn": 109,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 101,
+                            "startColumn": 62,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 545,
+                            "startColumn": 19,
+                            "startLine": 545
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 546,
+                            "startColumn": 78,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 49,
+                            "startColumn": 32,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 63,
+                            "startColumn": 48,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 63,
+                            "startColumn": 48,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 63,
+                            "startColumn": 9,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 546,
+                            "startColumn": 16,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 546,
+                            "startColumn": 16,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 208,
+                            "endLine": 114,
+                            "startColumn": 26,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e53d3a67-27d6-48c7-bc20-9c7330905b67",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 59,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                },
+                "region": {
+                  "endColumn": 208,
+                  "endLine": 114,
+                  "startColumn": 26,
+                  "startLine": 114
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ffb096313949deb:1"
+          },
+          "properties": {
+            "github/alertNumber": 67,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/67"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 56,
+                  "startColumn": 24,
+                  "startLine": 56
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 42,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 27,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "14495d09-e1de-4f32-a619-d9ebe6f40728",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 30,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 102,
+                  "startColumn": 27,
+                  "startLine": 102
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "936fae6541bad1ed:1"
+          },
+          "properties": {
+            "github/alertNumber": 68,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/68"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 78,
+                            "startColumn": 30,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 83,
+                            "startColumn": 17,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 59,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 228,
+                            "startColumn": 52,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 160,
+                            "startColumn": 38,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 148,
+                            "startColumn": 30,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 318,
+                            "startColumn": 19,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.editorTheme : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEditorTheme(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 42,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 167,
+                            "startColumn": 14,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "73125a98-05bc-416a-ba08-33ede65f4eb7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 62,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 167,
+                  "startColumn": 14,
+                  "startLine": 167
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cc169df61ce32679:1"
+          },
+          "properties": {
+            "github/alertNumber": 69,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/69"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 139,
+                            "startColumn": 46,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 195,
+                            "startColumn": 26,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 62,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 98,
+                            "endLine": 206,
+                            "startColumn": 22,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "96af9c4b-b68d-46c8-86f9-e0fb73b388c1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 62,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java"
+                },
+                "region": {
+                  "endColumn": 98,
+                  "endLine": 206,
+                  "startColumn": 22,
+                  "startLine": 206
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cee00903def403b7:1"
+          },
+          "properties": {
+            "github/alertNumber": 70,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/70"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 746,
+                            "startColumn": 19,
+                            "startLine": 746
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 238,
+                            "startColumn": 19,
+                            "startLine": 238
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 239,
+                            "startColumn": 16,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWebsite(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 83,
+                            "startColumn": 37,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 45,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 746,
+                            "startColumn": 19,
+                            "startLine": 746
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 238,
+                            "startColumn": 19,
+                            "startLine": 238
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 239,
+                            "startColumn": 16,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWebsite(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 83,
+                            "startColumn": 37,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 94,
+                            "startColumn": 33,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 45,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 126,
+                            "endLine": 167,
+                            "startColumn": 109,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 101,
+                            "startColumn": 62,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 59,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 102,
+                            "startColumn": 29,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 545,
+                            "startColumn": 19,
+                            "startLine": 545
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 546,
+                            "startColumn": 78,
+                            "startLine": 546
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 52,
+                            "startColumn": 32,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 69,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 59,
+                            "startColumn": 45,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 139,
+                            "startColumn": 64,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 174,
+                            "startColumn": 38,
+                            "startLine": 174
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 66,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "43fcab1c-552a-4414-aff3-9c832e95effd",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 66,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerConfig.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 176,
+                  "startColumn": 19,
+                  "startLine": 176
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a08f31576301ddae:1"
+          },
+          "properties": {
+            "github/alertNumber": 71,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/71"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e9585644-3d1b-44e0-9b16-11d1f64baf1b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 37,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "69aa71c58e6a7b41:1"
+          },
+          "properties": {
+            "github/alertNumber": 72,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/72"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 188,
+                            "startColumn": 53,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 74,
+                            "startColumn": 43,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 35,
+                            "uri": "app/src/main/java/org/apache/roller/planet/business/fetcher/RomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "feedURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 63,
+                            "startColumn": 43,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 37,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 84,
+                            "startColumn": 19,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "db8579cf-b1de-4969-a937-b98addb89e89",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 37,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/business/WebloggerRomeFeedFetcher.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 84,
+                  "startColumn": 19,
+                  "startLine": 84
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9a56fe15410415b6:1"
+          },
+          "properties": {
+            "github/alertNumber": 73,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/73"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 86,
+                            "startColumn": 34,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 91,
+                            "startColumn": 38,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "75731947-7661-489b-9baa-f2ef53b3d534",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 100,
+                  "startColumn": 23,
+                  "startLine": 100
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8be1b6dd5ca2f2f9:1"
+          },
+          "properties": {
+            "github/alertNumber": 74,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/74"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 86,
+                  "startColumn": 34,
+                  "startLine": 86
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 91,
+                  "startColumn": 38,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 25,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 305,
+                            "startColumn": 16,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 127,
+                            "startColumn": 54,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 78,
+                            "startColumn": 19,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 79,
+                            "startColumn": 16,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 127,
+                            "startColumn": 54,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7d85c54a-89b8-438e-b30e-6dd5e00294a1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 127,
+                  "startColumn": 31,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d57797d1ba4a6e1:1"
+          },
+          "properties": {
+            "github/alertNumber": 75,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/75"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 46,
+                  "startColumn": 25,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 184,
+                            "startColumn": 62,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 184,
+                            "startColumn": 31,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a0d5755d-2e85-46de-b53f-9b2f67ca2d61",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 73,
+                  "endLine": 184,
+                  "startColumn": 31,
+                  "startLine": 184
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f08cf860a892c8e5:1"
+          },
+          "properties": {
+            "github/alertNumber": 76,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/76"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 40,
+                            "startColumn": 25,
+                            "startLine": 40
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 82,
+                            "startColumn": 62,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetGroup"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 70,
+                            "startColumn": 19,
+                            "startLine": 70
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 68,
+                            "uri": "app/src/main/java/org/apache/roller/planet/pojos/PlanetGroup.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 71,
+                            "startColumn": 16,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 82,
+                            "startColumn": 62,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 69,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 82,
+                            "startColumn": 27,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3100f062-5f2d-4f4a-9bd1-d22f5f8ad9f4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 69,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 82,
+                  "startColumn": 27,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcadb2baab838791:1"
+          },
+          "properties": {
+            "github/alertNumber": 77,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/77"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroups.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 40,
+                  "startColumn": 25,
+                  "startLine": 40
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 49,
+                            "startColumn": 20,
+                            "startLine": 49
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "subUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 313,
+                            "startColumn": 16,
+                            "startLine": 313
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSubUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 195,
+                            "startColumn": 67,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 36,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 195,
+                            "startColumn": 31,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e8e85eb8-4324-4cef-aa76-76b4b8cd1b54",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 36,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 195,
+                  "startColumn": 31,
+                  "startLine": 195
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a0d39d71a074abc0:1"
+          },
+          "properties": {
+            "github/alertNumber": 78,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/78"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/planet/ui/PlanetGroupSubs.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 49,
+                  "startColumn": 20,
+                  "startLine": 49
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 78,
+                            "startColumn": 30,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 83,
+                            "startColumn": 17,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 59,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 228,
+                            "startColumn": 52,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 156,
+                            "startColumn": 24,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 59,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "97c25bc5-539b-48ee-b88b-e374911a2a8b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 57,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 162,
+                  "startColumn": 23,
+                  "startLine": 162
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2438d14ed044ce66:1"
+          },
+          "properties": {
+            "github/alertNumber": 79,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/79"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 141,
+                            "startColumn": 13,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 141,
+                            "startColumn": 40,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 46,
+                            "startColumn": 26,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 141,
+                            "startColumn": 92,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CategoryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 71,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 70,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 148,
+                            "startColumn": 69,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 618,
+                            "startColumn": 45,
+                            "startLine": 618
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 629,
+                            "startColumn": 23,
+                            "startLine": 629
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "08714ac8-491b-4cb2-9843-43993d815e70",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 57,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 629,
+                  "startColumn": 23,
+                  "startLine": 629
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "17b23e947dd64744:1"
+          },
+          "properties": {
+            "github/alertNumber": 80,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/80"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 46,
+                  "startColumn": 26,
+                  "startLine": 46
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 89,
+                            "startColumn": 31,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 27,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 288,
+                            "startColumn": 53,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 77,
+                            "startColumn": 47,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 246,
+                            "startColumn": 17,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 255,
+                            "startColumn": 19,
+                            "startLine": 255
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "creatorUserName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 256,
+                            "startColumn": 16,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCreatorUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 73,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 250,
+                            "startColumn": 27,
+                            "startLine": 250
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "92b5ff10-6759-45f4-88a6-89583bea790b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 14,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 250,
+                  "startColumn": 27,
+                  "startLine": 250
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8d91355609a0e920:1"
+          },
+          "properties": {
+            "github/alertNumber": 81,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/81"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 30,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 19,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2b9cce4b-6878-491a-a3fb-b7a2370e7abd",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 72,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 19,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c2ece2b3e2af8d8b:1"
+          },
+          "properties": {
+            "github/alertNumber": 82,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/82"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 30,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 71,
+                            "startColumn": 30,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 72,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 71,
+                            "startColumn": 19,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ae07bb32-6649-4791-87c9-bf8749056b2c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 72,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 71,
+                  "startColumn": 19,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a88667d606a890c3:1"
+          },
+          "properties": {
+            "github/alertNumber": 83,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/83"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/BootstrapFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 71,
+                  "startColumn": 30,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 30,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 18,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3c7daa23-8c7a-4595-8093-e1d9d05441a9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 73,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 18,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "aa6793773d3fa67:1"
+          },
+          "properties": {
+            "github/alertNumber": 84,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/84"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 30,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 64,
+                            "startColumn": 29,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 73,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 64,
+                            "startColumn": 18,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9e899334-51ef-42ba-a1d8-cbe8c34ebc80",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 73,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 64,
+                  "startColumn": 18,
+                  "startLine": 64
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "df1090d8a8954f9e:1"
+          },
+          "properties": {
+            "github/alertNumber": 85,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/85"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/DebugFilter.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 64,
+                  "startColumn": 29,
+                  "startLine": 64
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 30,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 54,
+                            "startColumn": 19,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "11fc36b4-00c1-4656-b06a-8e0307e8cab1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 74,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 19,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "fafc616351ef5ff6:1"
+          },
+          "properties": {
+            "github/alertNumber": 86,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/86"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 54,
+                  "startColumn": 30,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 30,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 74,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 19,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "642e0a3a-3f84-45cb-b2eb-c09562d7d7c9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 74,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 19,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "150a14bab8630004:1"
+          },
+          "properties": {
+            "github/alertNumber": 87,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/87"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/RoleAssignmentFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 30,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 31,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 31,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 31,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2f9c59cb-6336-463c-9ecd-11ed5a598ee2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 8,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 74,
+                  "startColumn": 31,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b9f71664ba42b479:1"
+          },
+          "properties": {
+            "github/alertNumber": 88,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/88"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 75,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 58,
+                            "startColumn": 45,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 75,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3fb6041a-40a1-437b-95c4-22430d0e2bfd",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 75,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 58,
+                  "startColumn": 22,
+                  "startLine": 58
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bcf5dbe0d1c8c530:1"
+          },
+          "properties": {
+            "github/alertNumber": 89,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/89"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/SpringFirewallExceptionFilter.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 58,
+                  "startColumn": 45,
+                  "startLine": 58
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 114,
+                            "startColumn": 27,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4cab36b2-a082-4233-8012-e48e03428846",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 8,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 114,
+                  "startColumn": 27,
+                  "startLine": 114
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f28369d07d8f1cd1:1"
+          },
+          "properties": {
+            "github/alertNumber": 90,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/90"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 30,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 56,
+                            "startColumn": 19,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "109bc638-a8c3-4c72-b983-cd64fda84651",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 76,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 19,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7a453674e9567ce9:1"
+          },
+          "properties": {
+            "github/alertNumber": 91,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/91"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 56,
+                  "startColumn": 30,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 68,
+                            "startColumn": 30,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 76,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 68,
+                            "startColumn": 19,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "57a140ba-6470-4f7f-b92b-29f45a769e62",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 76,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 68,
+                  "startColumn": 19,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "150a14bab8630004:1"
+          },
+          "properties": {
+            "github/alertNumber": 92,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/92"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/PersistenceSessionFilter.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 68,
+                  "startColumn": 30,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getServletPath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 69,
+                            "startColumn": 84,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 69,
+                            "startColumn": 35,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bdc6a6dd-5d84-4d67-a26c-39bd1d5de532",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 77,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 69,
+                  "startColumn": 35,
+                  "startLine": 69
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1cc2607248f48923:1"
+          },
+          "properties": {
+            "github/alertNumber": 93,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/93"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 69,
+                  "startColumn": 84,
+                  "startLine": 69
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b7b3904c-fb61-42b4-a79c-e1c0a56bf231",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 77,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 77,
+                  "startColumn": 31,
+                  "startLine": 77
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "72f3ef5cffd9b1e4:1"
+          },
+          "properties": {
+            "github/alertNumber": 94,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/94"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 34,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 101,
+                            "startColumn": 19,
+                            "startLine": 101
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "952b28c7-32c1-4911-a716-772da40c09ad",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 61,
+                  "endLine": 101,
+                  "startColumn": 19,
+                  "startLine": 101
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a6e9d1493c7493e0:1"
+          },
+          "properties": {
+            "github/alertNumber": 95,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/95"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 101,
+                  "startColumn": 34,
+                  "startLine": 101
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 130,
+                            "startColumn": 19,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 130,
+                            "startColumn": 19,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 130,
+                            "startColumn": 19,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "08fe3d0b-6346-424d-96a9-583351e141f1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 130,
+                  "startColumn": 19,
+                  "startLine": 130
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcf383c1eb36553a:1"
+          },
+          "properties": {
+            "github/alertNumber": 96,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/96"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 134,
+                            "startColumn": 23,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 134,
+                            "startColumn": 23,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 134,
+                            "startColumn": 23,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f3c2bb30-1588-41d3-96c1-4e61575cd17c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 134,
+                  "startColumn": 23,
+                  "startLine": 134
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f989376cdbd9541a:1"
+          },
+          "properties": {
+            "github/alertNumber": 97,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/97"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 148,
+                            "startColumn": 27,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "cd05540c-55c5-4342-9912-b501e8825a68",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 148,
+                  "startColumn": 27,
+                  "startLine": 148
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "663b5b6cb241aee6:1"
+          },
+          "properties": {
+            "github/alertNumber": 98,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/98"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getServletPath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 153,
+                            "startColumn": 33,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 153,
+                            "startColumn": 19,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "701ee3ec-3bca-4fa4-b104-8d6eb84189e7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 153,
+                  "startColumn": 19,
+                  "startLine": 153
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "49dbc25bce4e3cad:1"
+          },
+          "properties": {
+            "github/alertNumber": 99,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/99"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 153,
+                  "startColumn": 33,
+                  "startLine": 153
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 271,
+                            "startColumn": 39,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 271,
+                            "startColumn": 21,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogLocale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 228,
+                            "startColumn": 72,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 253,
+                            "startColumn": 55,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 274,
+                            "startColumn": 43,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 274,
+                            "startColumn": 25,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 288,
+                            "startColumn": 39,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 288,
+                            "startColumn": 21,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 312,
+                            "startColumn": 35,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 312,
+                            "startColumn": 17,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 408,
+                            "startColumn": 16,
+                            "startLine": 408
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "calculateForwardUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 229,
+                            "startColumn": 29,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 237,
+                            "startColumn": 19,
+                            "startLine": 237
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "dcf3ec90-e7bc-48d3-90de-ce0df6eee7f6",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 237,
+                  "startColumn": 19,
+                  "startLine": 237
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a0ecfe487782fe33:1"
+          },
+          "properties": {
+            "github/alertNumber": 100,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/100"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogLocale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 228,
+                            "startColumn": 72,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 253,
+                            "startColumn": 55,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 257,
+                            "startColumn": 23,
+                            "startLine": 257
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7f4c5b43-84ff-4c30-800e-4356f5e916ff",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 61,
+                  "endLine": 257,
+                  "startColumn": 23,
+                  "startLine": 257
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "90bd2f63db8ff9c2:1"
+          },
+          "properties": {
+            "github/alertNumber": 101,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/101"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 271,
+                            "startColumn": 39,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 271,
+                            "startColumn": 21,
+                            "startLine": 271
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 124,
+                            "startColumn": 28,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 160,
+                            "startColumn": 32,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogLocale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 228,
+                            "startColumn": 72,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 253,
+                            "startColumn": 55,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 274,
+                            "startColumn": 43,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 274,
+                            "startColumn": 25,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 288,
+                            "startColumn": 39,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 288,
+                            "startColumn": 21,
+                            "startLine": 288
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 228,
+                            "startColumn": 58,
+                            "startLine": 228
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 253,
+                            "startColumn": 40,
+                            "startLine": 253
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 312,
+                            "startColumn": 35,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 312,
+                            "startColumn": 17,
+                            "startLine": 312
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "forwardUrl : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 38,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 405,
+                            "startColumn": 23,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bf03573d-011f-492a-b4fe-c0ac2ff1b56a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 405,
+                  "startColumn": 23,
+                  "startLine": 405
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2848f01c47171aca:1"
+          },
+          "properties": {
+            "github/alertNumber": 102,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/102"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 64,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "potentialHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 416,
+                            "startColumn": 30,
+                            "startLine": 416
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 418,
+                            "startColumn": 19,
+                            "startLine": 418
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 110,
+                            "startColumn": 27,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 118,
+                            "startColumn": 27,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 64,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "potentialHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 416,
+                            "startColumn": 30,
+                            "startLine": 416
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 418,
+                            "startColumn": 19,
+                            "startLine": 418
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 104,
+                            "startColumn": 26,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 114,
+                            "startColumn": 23,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "servlet : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 123,
+                            "startColumn": 32,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 133,
+                            "startColumn": 64,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "potentialHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 416,
+                            "startColumn": 30,
+                            "startLine": 416
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 67,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 418,
+                            "startColumn": 19,
+                            "startLine": 418
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ae7d76fe-8268-44d0-95fc-92e5c9d0923b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 67,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 418,
+                  "startColumn": 19,
+                  "startLine": 418
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "76526c443f7e6f0a:1"
+          },
+          "properties": {
+            "github/alertNumber": 103,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/103"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 104,
+                  "startColumn": 26,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 16,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 134,
+                            "startColumn": 14,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "59bdec7f-0b50-4ec4-868e-4905dedc98ab",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 16,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 134,
+                  "startColumn": 14,
+                  "startLine": 134
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c92d5cd2dbfa987a:1"
+          },
+          "properties": {
+            "github/alertNumber": 104,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/104"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/LdapCommentAuthenticator.java"
+                },
+                "region": {
+                  "endColumn": 53,
+                  "endLine": 113,
+                  "startColumn": 21,
+                  "startLine": 113
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 24,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 95,
+                            "startColumn": 13,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 58,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 19,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 63,
+                            "startColumn": 28,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 63,
+                            "startColumn": 17,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 20,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 94,
+                            "startColumn": 9,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 58,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 19,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 127,
+                            "startColumn": 19,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 58,
+                            "startColumn": 24,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 74,
+                            "startColumn": 16,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 20,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 94,
+                            "startColumn": 9,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 15,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 13,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/MultiWeblogURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 97,
+                            "startColumn": 12,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 58,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 78,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 225,
+                            "startColumn": 19,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fcb33c28-6239-477d-b80e-d5a35f9ebe73",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 78,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/CommentServlet.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 225,
+                  "startColumn": 19,
+                  "startLine": 225
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d839a74372bf29d7:1"
+          },
+          "properties": {
+            "github/alertNumber": 105,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/105"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 67,
+                            "startColumn": 33,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 67,
+                            "startColumn": 13,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 69,
+                            "startColumn": 17,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 76,
+                            "startColumn": 13,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 79,
+                            "startColumn": 13,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 92,
+                            "startColumn": 44,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4f340c9c-f7c6-4646-aac3-1fa6d942d293",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 79,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                },
+                "region": {
+                  "endColumn": 22,
+                  "endLine": 93,
+                  "startColumn": 19,
+                  "startLine": 92
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "69fbf80b90de8e58:1"
+          },
+          "properties": {
+            "github/alertNumber": 106,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/106"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 67,
+                            "startColumn": 33,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 67,
+                            "startColumn": 13,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 69,
+                            "startColumn": 17,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 76,
+                            "startColumn": 13,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 79,
+                            "startColumn": 13,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 91,
+                            "startColumn": 19,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 92,
+                            "startColumn": 16,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getResourcePath(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 98,
+                            "startColumn": 44,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 19,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "23510bac-92b7-4446-87e7-3101ce920a1d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 82,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                },
+                "region": {
+                  "endColumn": 22,
+                  "endLine": 99,
+                  "startColumn": 19,
+                  "startLine": 98
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "69fbf80b90de8e58:1"
+          },
+          "properties": {
+            "github/alertNumber": 107,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/107"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURI(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 588,
+                            "startColumn": 48,
+                            "startLine": 588
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 588,
+                            "startColumn": 19,
+                            "startLine": 588
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b54c0ab2-8082-40e0-9600-2faa8d2d6088",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 83,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 588,
+                  "startColumn": 19,
+                  "startLine": 588
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ffdd48e56eefbc73:1"
+          },
+          "properties": {
+            "github/alertNumber": 108,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/108"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 588,
+                  "startColumn": 48,
+                  "startLine": 588
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHeader(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 621,
+                            "startColumn": 27,
+                            "startLine": 621
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 623,
+                            "startColumn": 19,
+                            "startLine": 623
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1a7f6fce-598f-4f8e-9c9c-2ea6e0037de8",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 83,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 623,
+                  "startColumn": 19,
+                  "startLine": 623
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "abbad978543707bb:1"
+          },
+          "properties": {
+            "github/alertNumber": 109,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/109"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 621,
+                  "startColumn": 27,
+                  "startLine": 621
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHeader(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 621,
+                            "startColumn": 27,
+                            "startLine": 621
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 83,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 672,
+                            "startColumn": 27,
+                            "startLine": 672
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "316259e7-40dd-4b7c-b289-2f849b100907",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 83,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 672,
+                  "startColumn": 27,
+                  "startLine": 672
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "77468e22342cb86a:1"
+          },
+          "properties": {
+            "github/alertNumber": 110,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/110"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PageServlet.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 621,
+                  "startColumn": 27,
+                  "startLine": 621
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 84,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 107,
+                            "startColumn": 33,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 84,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 107,
+                            "startColumn": 15,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7220b359-936b-421e-b74e-88f84edd5928",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 84,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 107,
+                  "startColumn": 15,
+                  "startLine": 107
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c96d57cbd8b44ee4:1"
+          },
+          "properties": {
+            "github/alertNumber": 111,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/111"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/ModDateHeaderUtil.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 107,
+                  "startColumn": 33,
+                  "startLine": 107
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 51,
+                            "startColumn": 34,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 51,
+                            "startColumn": 19,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d740ed34-6ab3-49f4-bdb2-bf42c85016c0",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 85,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 51,
+                  "startColumn": 19,
+                  "startLine": 51
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "da488e1b9db7c2b3:1"
+          },
+          "properties": {
+            "github/alertNumber": 112,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/112"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 57,
+                  "endLine": 51,
+                  "startColumn": 34,
+                  "startLine": 51
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 118,
+                            "startColumn": 46,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 118,
+                            "startColumn": 25,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 138,
+                            "startColumn": 23,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 118,
+                            "startColumn": 46,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 118,
+                            "startColumn": 25,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [name] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 118,
+                            "startColumn": 13,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [name] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 138,
+                            "startColumn": 33,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 138,
+                            "startColumn": 33,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 138,
+                            "startColumn": 23,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3fd909cf-eb78-4d46-bc12-6cbf3ace15ed",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 42,
+                  "endLine": 138,
+                  "startColumn": 23,
+                  "startLine": 138
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c9ea63b36c0346f0:1"
+          },
+          "properties": {
+            "github/alertNumber": 113,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/113"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 118,
+                  "startColumn": 46,
+                  "startLine": 118
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 122,
+                            "startColumn": 47,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 122,
+                            "startColumn": 26,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 122,
+                            "startColumn": 47,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 122,
+                            "startColumn": 26,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [email] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 122,
+                            "startColumn": 13,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [email] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 139,
+                            "startColumn": 34,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.email : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 139,
+                            "startColumn": 34,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "aaef273e-ae26-4334-a63b-2ddb4e45e068",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 139,
+                  "startColumn": 23,
+                  "startLine": 139
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b32d6c74b4d5e46d:1"
+          },
+          "properties": {
+            "github/alertNumber": 114,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/114"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 122,
+                  "startColumn": 47,
+                  "startLine": 122
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 126,
+                            "startColumn": 24,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 126,
+                            "startColumn": 45,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 167,
+                            "startColumn": 28,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 167,
+                            "startColumn": 17,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trim(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 191,
+                            "startColumn": 16,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 126,
+                            "startColumn": 24,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 126,
+                            "startColumn": 13,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 140,
+                            "startColumn": 32,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 32,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ca8a7aee-2167-4dc2-b009-1532096b2db2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 140,
+                  "startColumn": 23,
+                  "startLine": 140
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c9ad117fed3bee6:1"
+          },
+          "properties": {
+            "github/alertNumber": 115,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/115"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 126,
+                  "startColumn": 45,
+                  "startLine": 126
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 130,
+                            "startColumn": 28,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 130,
+                            "startColumn": 28,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [content] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 130,
+                            "startColumn": 13,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [content] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 141,
+                            "startColumn": 36,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.content : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 36,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bbc8002f-b391-4e1e-99d1-8ccda586071d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 141,
+                  "startColumn": 23,
+                  "startLine": 141
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7de12f9816339ac:1"
+          },
+          "properties": {
+            "github/alertNumber": 116,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/116"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 130,
+                  "startColumn": 28,
+                  "startLine": 130
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 9,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 89,
+                            "startColumn": 59,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 89,
+                            "startColumn": 41,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 9,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 89,
+                            "startColumn": 59,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 89,
+                            "startColumn": 41,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogCommentRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogAnchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 9,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogCommentRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 67,
+                            "startColumn": 27,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 84,
+                            "startColumn": 37,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 89,
+                            "startColumn": 59,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 89,
+                            "startColumn": 41,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 86,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2765af25-d85e-4b63-9529-d9a68afbb216",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 86,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogCommentRequest.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 143,
+                  "startColumn": 23,
+                  "startLine": 143
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7a6da6aa16493d39:1"
+          },
+          "properties": {
+            "github/alertNumber": 117,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/117"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4c58e8fc-624b-4c59-b569-780dd675f128",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 53,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 58,
+                  "startColumn": 19,
+                  "startLine": 58
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8daa4482c165b680:1"
+          },
+          "properties": {
+            "github/alertNumber": 118,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/118"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 82,
+                            "startColumn": 19,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1045415d-8a25-4f6b-bc93-2b59dfdf590d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 82,
+                  "startColumn": 19,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a68f9e305063ca01:1"
+          },
+          "properties": {
+            "github/alertNumber": 119,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/119"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 23,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 68,
+                            "startColumn": 35,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 23,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 55,
+                            "startColumn": 27,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 66,
+                            "startColumn": 31,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 66,
+                            "startColumn": 13,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogMediaResourceRequest [resourceId] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 81,
+                            "startColumn": 39,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourceId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 39,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 81,
+                            "startColumn": 23,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "6bdacef9-1572-43ac-bf3c-b2464ca8c483",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 53,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 81,
+                  "startColumn": 23,
+                  "startLine": 81
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ca94cde0e2f1eb58:1"
+          },
+          "properties": {
+            "github/alertNumber": 120,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/120"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 60,
+                            "startColumn": 30,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 74,
+                            "startColumn": 23,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 60,
+                            "startColumn": 30,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 60,
+                            "startColumn": 13,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPreviewRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 74,
+                            "startColumn": 34,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 74,
+                            "startColumn": 34,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 88,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 74,
+                            "startColumn": 23,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "11e42fd2-6cac-4edb-aa1b-382ef3cefae3",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 88,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 74,
+                  "startColumn": 23,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "719ed5c4857b5406:1"
+          },
+          "properties": {
+            "github/alertNumber": 121,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/121"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 60,
+                  "startColumn": 30,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 61,
+                            "startColumn": 23,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 34,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 61,
+                            "startColumn": 34,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 61,
+                            "startColumn": 23,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9eb0efc8-22c4-4241-a518-314f3301d87e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 81,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 61,
+                  "startColumn": 23,
+                  "startLine": 61
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "be79ac3e1db3c034:1"
+          },
+          "properties": {
+            "github/alertNumber": 122,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/122"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 57,
+                  "startColumn": 30,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 85,
+                            "startColumn": 18,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 27,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 85,
+                            "startColumn": 18,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 43,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 43,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 27,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 57,
+                            "startColumn": 30,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 57,
+                            "startColumn": 13,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 85,
+                            "startColumn": 18,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [themeName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 53,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "themeName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 53,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 94,
+                            "startColumn": 27,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a918c1b7-335d-476a-9ace-d4b152ad205b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 81,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 94,
+                  "startColumn": 27,
+                  "startLine": 94
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4d9670df4c218988:1"
+          },
+          "properties": {
+            "github/alertNumber": 123,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/123"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 57,
+                  "startColumn": 30,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 23,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 104,
+                            "startColumn": 29,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogFeedRequest [type] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 104,
+                            "startColumn": 17,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [type] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 105,
+                            "startColumn": 17,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [type] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 161,
+                            "startColumn": 33,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.type : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 33,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 23,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 161,
+                            "startColumn": 23,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1e2ec4e4-7fdb-443d-9370-7ad94609419b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 42,
+                  "endLine": 161,
+                  "startColumn": 23,
+                  "startLine": 161
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "735b08c74765e541:1"
+          },
+          "properties": {
+            "github/alertNumber": 124,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/124"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 105,
+                            "startColumn": 31,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogFeedRequest [format] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 105,
+                            "startColumn": 17,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [format] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 162,
+                            "startColumn": 35,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.format : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 35,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 74,
+                            "startColumn": 9,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogFeedRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 79,
+                            "startColumn": 27,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 100,
+                            "startColumn": 37,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 162,
+                            "startColumn": 23,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "92b0994b-0dbd-421c-bbfc-88a6e478fdcb",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 162,
+                  "startColumn": 23,
+                  "startLine": 162
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd952aa0a04fc042:1"
+          },
+          "properties": {
+            "github/alertNumber": 125,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/125"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 128,
+                            "startColumn": 21,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 128,
+                            "startColumn": 41,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 128,
+                            "startColumn": 21,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogFeedRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 127,
+                            "startColumn": 13,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogFeedRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 156,
+                            "startColumn": 57,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogCategoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 156,
+                            "startColumn": 57,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 87,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 163,
+                            "startColumn": 23,
+                            "startLine": 163
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "250e9486-6d6e-41af-b6a3-7a7ba07eba4c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 87,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 163,
+                  "startColumn": 23,
+                  "startLine": 163
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcf7c87f4920bbcd:1"
+          },
+          "properties": {
+            "github/alertNumber": 126,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/126"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogFeedRequest.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 128,
+                  "startColumn": 41,
+                  "startLine": 128
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 75,
+                            "startColumn": 19,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "207de851-fd2e-4dcf-9ab4-86c80dba48eb",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 75,
+                  "startColumn": 19,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ef5c91917550823c:1"
+          },
+          "properties": {
+            "github/alertNumber": 127,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/127"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 122,
+                            "startColumn": 23,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 122,
+                            "startColumn": 35,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 122,
+                            "startColumn": 35,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 122,
+                            "startColumn": 23,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "28069c64-aa79-4a8f-a0fd-e3b9fca0e9cc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 122,
+                  "startColumn": 23,
+                  "startLine": 122
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7aa4ecdf34276c5e:1"
+          },
+          "properties": {
+            "github/alertNumber": 128,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/128"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 123,
+                            "startColumn": 23,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 109,
+                            "startColumn": 31,
+                            "startLine": 109
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [locale] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 109,
+                            "startColumn": 17,
+                            "startLine": 109
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogRequest [locale] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 123,
+                            "startColumn": 35,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 123,
+                            "startColumn": 35,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 123,
+                            "startColumn": 23,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "72a878c6-1c3d-4a4a-87cf-54e158f52364",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 123,
+                  "startColumn": 23,
+                  "startLine": 123
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8e3b3bdc9cf3eff7:1"
+          },
+          "properties": {
+            "github/alertNumber": 129,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/129"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 124,
+                            "startColumn": 37,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 37,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3eca26c5-d83d-4455-a3e7-3df45ca665d8",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 124,
+                  "startColumn": 23,
+                  "startLine": 124
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d3b1870c4b84e4a8:1"
+          },
+          "properties": {
+            "github/alertNumber": 130,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/130"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 57,
+                            "startColumn": 19,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 57,
+                            "startColumn": 19,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 57,
+                            "startColumn": 19,
+                            "startLine": 57
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ddf5d0b2-4cac-425a-a74b-01e72519a9f4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 80,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 57,
+                  "startColumn": 19,
+                  "startLine": 57
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d68fc770b2677b0f:1"
+          },
+          "properties": {
+            "github/alertNumber": 131,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/131"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogRequest(...) : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 89,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 81,
+                            "startColumn": 29,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogRequest : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 89,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/RSDServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 84,
+                            "startColumn": 22,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 85,
+                            "startColumn": 24,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 53,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogMediaResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 47,
+                            "startColumn": 12,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogMediaResourceRequest(...) : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 31,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 54,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/MediaResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 78,
+                            "startColumn": 22,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogMediaResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 189,
+                            "startColumn": 44,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 189,
+                            "startColumn": 44,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogResourceRequest(...) : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 80,
+                            "startColumn": 31,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 82,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 82,
+                            "startColumn": 22,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 54,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 54,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 90,
+                            "startColumn": 37,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 90,
+                            "startColumn": 17,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 52,
+                            "startColumn": 9,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 81,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPreviewResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 48,
+                            "startColumn": 12,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new WeblogPreviewResourceRequest(...) : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 77,
+                            "startColumn": 31,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resourceRequest : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 79,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 79,
+                            "startColumn": 22,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 184,
+                            "startColumn": 19,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPreviewResourceRequest [weblogHandle] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogHandle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 186,
+                            "startColumn": 30,
+                            "startLine": 186
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 191,
+                            "startColumn": 27,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "00793c8a-6293-40a7-b975-7399a0de3369",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 52,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 191,
+                  "startColumn": 27,
+                  "startLine": 191
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "676191d9ba085b94:1"
+          },
+          "properties": {
+            "github/alertNumber": 132,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/132"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 23,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 69,
+                            "startColumn": 37,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 79,
+                            "startColumn": 13,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [resourcePath] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 23,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 51,
+                            "startColumn": 9,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogResourceRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 54,
+                            "startColumn": 27,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replace(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.resourcePath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 79,
+                            "startColumn": 53,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 79,
+                            "startColumn": 33,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 80,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 87,
+                            "startColumn": 23,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "65324bba-a2f1-48c3-8913-c3706cca9e97",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 80,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogResourceRequest.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 87,
+                  "startColumn": 23,
+                  "startLine": 87
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1c1e8cd55321ee47:1"
+          },
+          "properties": {
+            "github/alertNumber": 133,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/133"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 29,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 29,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [blogName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 115,
+                            "startColumn": 13,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [blogName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 132,
+                            "startColumn": 12,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.blogName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 132,
+                            "startColumn": 12,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 139,
+                            "startColumn": 23,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "50a2f4a3-41b9-417e-b832-4f57bc62068a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 139,
+                  "startColumn": 23,
+                  "startLine": 139
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9d9fb33390d95b4e:1"
+          },
+          "properties": {
+            "github/alertNumber": 134,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/134"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 115,
+                  "startColumn": 29,
+                  "startLine": 115
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 24,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 24,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 119,
+                            "startColumn": 13,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 132,
+                            "startColumn": 37,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 132,
+                            "startColumn": 37,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 140,
+                            "startColumn": 23,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d2339f82-1805-4111-995c-bd482965efd1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 140,
+                  "startColumn": 23,
+                  "startLine": 140
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "25c5f45c123429f1:1"
+          },
+          "properties": {
+            "github/alertNumber": 135,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/135"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 51,
+                  "endLine": 119,
+                  "startColumn": 24,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 123,
+                            "startColumn": 28,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 123,
+                            "startColumn": 28,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [excerpt] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 123,
+                            "startColumn": 13,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [excerpt] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 133,
+                            "startColumn": 17,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 133,
+                            "startColumn": 17,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f3cbbc13-b309-4439-b879-cc4bd2d8b1ce",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 141,
+                  "startColumn": 23,
+                  "startLine": 141
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a69ac23e7a1ce2cb:1"
+          },
+          "properties": {
+            "github/alertNumber": 136,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/136"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 123,
+                  "startColumn": 28,
+                  "startLine": 123
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 127,
+                            "startColumn": 26,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 142,
+                            "startColumn": 23,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 127,
+                            "startColumn": 26,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [title] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 127,
+                            "startColumn": 13,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [title] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 133,
+                            "startColumn": 41,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 133,
+                            "startColumn": 41,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 142,
+                            "startColumn": 23,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a5178904-26a6-4cf9-8b40-a4ca48653dbe",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 142,
+                  "startColumn": 23,
+                  "startLine": 142
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f16f6fccea817b10:1"
+          },
+          "properties": {
+            "github/alertNumber": 137,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/137"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 127,
+                  "startColumn": 26,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 60,
+                            "startColumn": 9,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 87,
+                            "startColumn": 59,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 60,
+                            "startColumn": 9,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 87,
+                            "startColumn": 59,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogTrackbackRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 87,
+                            "startColumn": 21,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogAnchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 41,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 60,
+                            "startColumn": 9,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogTrackbackRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 65,
+                            "startColumn": 27,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 82,
+                            "startColumn": 37,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 87,
+                            "startColumn": 59,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 99,
+                            "endLine": 87,
+                            "startColumn": 41,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 90,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 143,
+                            "startColumn": 23,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "dbe98741-71ce-4050-bd3f-504e75171263",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 90,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogTrackbackRequest.java"
+                },
+                "region": {
+                  "endColumn": 58,
+                  "endLine": 143,
+                  "startColumn": 23,
+                  "startLine": 143
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "297efb32b64e607c:1"
+          },
+          "properties": {
+            "github/alertNumber": 138,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/138"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 125,
+                            "startColumn": 63,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 99,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 108,
+                            "startColumn": 23,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "db7ae0d1-a953-4cf5-8c76-649aed45f696",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 91,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 108,
+                  "startColumn": 23,
+                  "startLine": 108
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1c9bb0ef82acf10b:1"
+          },
+          "properties": {
+            "github/alertNumber": 139,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/139"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 125,
+                            "startColumn": 63,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 99,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 110,
+                            "startColumn": 23,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f0a7864b-404e-496e-bc23-9771c19fdd0f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 91,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 110,
+                  "startColumn": 23,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1b0efe43d94b8258:1"
+          },
+          "properties": {
+            "github/alertNumber": 140,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/140"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 243,
+                            "startColumn": 30,
+                            "startLine": 243
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 117,
+                            "startColumn": 21,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "814ac33f-1d37-4981-8676-0260cc31bb40",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 91,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 124,
+                  "startColumn": 19,
+                  "startLine": 124
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b7a8f23a0e665356:1"
+          },
+          "properties": {
+            "github/alertNumber": 141,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/141"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 82,
+                            "startColumn": 27,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "86fd0007-1421-4013-ad24-32a0d0b551ba",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 37,
+                  "endLine": 82,
+                  "startColumn": 27,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8988d6baea14e575:1"
+          },
+          "properties": {
+            "github/alertNumber": 142,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/142"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 84,
+                            "startColumn": 27,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d5d23a6c-6d07-4d8e-95e6-26c69856c816",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 84,
+                  "startColumn": 27,
+                  "startLine": 84
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9a2bb28767b27d77:1"
+          },
+          "properties": {
+            "github/alertNumber": 143,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/143"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 88,
+                            "startColumn": 23,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b12e8ce9-038c-435e-bb59-881a8676ab8a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 88,
+                  "startColumn": 23,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e5eafc7dcc95164e:1"
+          },
+          "properties": {
+            "github/alertNumber": 144,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/144"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 75,
+                            "startColumn": 34,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 102,
+                            "startColumn": 24,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 104,
+                            "startColumn": 19,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4e3a8217-b906-4801-921c-838cb3cd00f3",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 93,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 104,
+                  "startColumn": 19,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f0f0ce947251cd31:1"
+          },
+          "properties": {
+            "github/alertNumber": 145,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/145"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 93,
+                            "startColumn": 19,
+                            "startLine": 93
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "6fc04e11-c9e4-4638-b3df-5fc05888f995",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 93,
+                  "startColumn": 19,
+                  "startLine": 93
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "774765a8c441628c:1"
+          },
+          "properties": {
+            "github/alertNumber": 146,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/146"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 260,
+                            "startColumn": 23,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 119,
+                            "startColumn": 28,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [context] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 119,
+                            "startColumn": 13,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [context] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.context : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 260,
+                            "startColumn": 23,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 260,
+                            "startColumn": 23,
+                            "startLine": 260
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1047183e-6f41-47ce-9ff1-ca759d19a2a7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 260,
+                  "startColumn": 23,
+                  "startLine": 260
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7f27df7c14ccee57:1"
+          },
+          "properties": {
+            "github/alertNumber": 147,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/147"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 125,
+                            "startColumn": 61,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 125,
+                            "startColumn": 41,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 125,
+                            "startColumn": 61,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 125,
+                            "startColumn": 41,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 125,
+                            "startColumn": 21,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 128,
+                            "startColumn": 21,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogAnchor] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 221,
+                            "startColumn": 17,
+                            "startLine": 221
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogAnchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 221,
+                            "startColumn": 17,
+                            "startLine": 221
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 208,
+                            "startColumn": 33,
+                            "startLine": 208
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 213,
+                            "startColumn": 33,
+                            "startLine": 213
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 261,
+                            "startColumn": 23,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "24cbefb3-fea4-40ff-bb2b-b36c379c4702",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 261,
+                  "startColumn": 23,
+                  "startLine": 261
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "71bd0ddb6d90160:1"
+          },
+          "properties": {
+            "github/alertNumber": 148,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/148"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 62,
+                  "endLine": 208,
+                  "startColumn": 33,
+                  "startLine": 208
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 213,
+                  "startColumn": 33,
+                  "startLine": 213
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 132,
+                            "startColumn": 43,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 132,
+                            "startColumn": 25,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 139,
+                            "startColumn": 21,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogDate : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 223,
+                            "startColumn": 35,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 223,
+                            "startColumn": 35,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "date : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 225,
+                            "startColumn": 43,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 225,
+                            "startColumn": 25,
+                            "startLine": 225
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogDate] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogDate : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 41,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 23,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fbb8a704-2188-46e0-9c4f-0ea6de311090",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 262,
+                  "startColumn": 23,
+                  "startLine": 262
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "601f9583f3741d53:1"
+          },
+          "properties": {
+            "github/alertNumber": 149,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/149"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 223,
+                  "startColumn": 35,
+                  "startLine": 223
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 143,
+                            "startColumn": 37,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 143,
+                            "startColumn": 47,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 143,
+                            "startColumn": 37,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 143,
+                            "startColumn": 47,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 142,
+                            "startColumn": 21,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 146,
+                            "startColumn": 21,
+                            "startLine": 146
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogCategoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 234,
+                            "startColumn": 67,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 234,
+                            "startColumn": 47,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 234,
+                            "startColumn": 67,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 76,
+                            "startColumn": 33,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 77,
+                            "startColumn": 34,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "decode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 234,
+                            "startColumn": 47,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 233,
+                            "startColumn": 21,
+                            "startLine": 233
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 251,
+                            "startColumn": 9,
+                            "startLine": 251
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogCategoryName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogCategoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 45,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 263,
+                            "startColumn": 23,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2b4c2dc0-a47a-450f-b214-8367444caec6",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 263,
+                  "startColumn": 23,
+                  "startLine": 263
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dcf7c87f4b14c8ff:1"
+          },
+          "properties": {
+            "github/alertNumber": 150,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/150"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 234,
+                  "startColumn": 67,
+                  "startLine": 233
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 265,
+                            "startColumn": 23,
+                            "startLine": 265
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 107,
+                            "startColumn": 37,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 113,
+                            "startColumn": 37,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 113,
+                            "startColumn": 21,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 149,
+                            "startColumn": 43,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogPageRequest [weblogPageName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 149,
+                            "startColumn": 21,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [weblogPageName] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 204,
+                            "startColumn": 33,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.weblogPageName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 204,
+                            "startColumn": 33,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 265,
+                            "startColumn": 23,
+                            "startLine": 265
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 73,
+                            "startColumn": 23,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 81,
+                            "startColumn": 20,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 88,
+                            "startColumn": 37,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "path : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 117,
+                            "startColumn": 33,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 117,
+                            "startColumn": 17,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : WeblogRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 67,
+                            "startColumn": 12,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this  [post update] : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 85,
+                            "startColumn": 9,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 176,
+                            "startColumn": 19,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : WeblogPageRequest [pathInfo] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 52,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 177,
+                            "startColumn": 16,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPathInfo(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 90,
+                            "startColumn": 27,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pathInfo : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 116,
+                            "startColumn": 37,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 94,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 265,
+                            "startColumn": 23,
+                            "startLine": 265
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "45efa83c-8837-4be2-8931-36f2228c4b16",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 94,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogPageRequest.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 265,
+                  "startColumn": 23,
+                  "startLine": 265
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "361f76a52a89abcb:1"
+          },
+          "properties": {
+            "github/alertNumber": 151,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/151"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/WeblogRequest.java"
+                },
+                "region": {
+                  "endColumn": 44,
+                  "endLine": 73,
+                  "startColumn": 23,
+                  "startLine": 73
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 40,
+                            "startColumn": 28,
+                            "startLine": 40
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 144,
+                            "startColumn": 16,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 69,
+                            "startColumn": 63,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PingTargetBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 96,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 34,
+                            "startColumn": 19,
+                            "startLine": 34
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 96,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 35,
+                            "startColumn": 16,
+                            "startLine": 35
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 69,
+                            "startColumn": 63,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 95,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 69,
+                            "startColumn": 27,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ac3fa5b8-719b-44e6-8bad-b3d74ab91c17",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 95,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 69,
+                  "startColumn": 27,
+                  "startLine": 69
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "64385996b45658b9:1"
+          },
+          "properties": {
+            "github/alertNumber": 152,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/152"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 40,
+                  "startColumn": 28,
+                  "startLine": 40
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 55,
+                            "startColumn": 20,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 203,
+                            "startColumn": 16,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 86,
+                            "startColumn": 63,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 86,
+                            "startColumn": 27,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bc3bbd85-0e1b-46bd-acf7-ea2028c0d45e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 97,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 86,
+                  "startColumn": 27,
+                  "startLine": 86
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "266274d6ccd85b9f:1"
+          },
+          "properties": {
+            "github/alertNumber": 153,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/153"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 55,
+                  "startColumn": 20,
+                  "startLine": 55
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 60,
+                            "startColumn": 41,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 114,
+                            "startColumn": 19,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 115,
+                            "startColumn": 16,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 274,
+                            "startColumn": 28,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 276,
+                            "startColumn": 27,
+                            "startLine": 276
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "53b94c94-9c36-4c15-bd4a-f632405e91cf",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 98,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 276,
+                  "startColumn": 27,
+                  "startLine": 276
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "382c410a52dfc58:1"
+          },
+          "properties": {
+            "github/alertNumber": 154,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/154"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 60,
+                  "startColumn": 41,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 60,
+                            "startColumn": 41,
+                            "startLine": 60
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : GlobalCommentManagementBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 114,
+                            "startColumn": 19,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 99,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagementBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 115,
+                            "startColumn": 16,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 274,
+                            "startColumn": 58,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 274,
+                            "startColumn": 28,
+                            "startLine": 274
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 98,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 280,
+                            "startColumn": 31,
+                            "startLine": 280
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9d00e1ab-8dab-469b-b487-7236db6159d4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 98,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 280,
+                  "startColumn": 31,
+                  "startLine": 280
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7a806e53a7918e00:1"
+          },
+          "properties": {
+            "github/alertNumber": 155,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/155"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java"
+                },
+                "region": {
+                  "endColumn": 45,
+                  "endLine": 60,
+                  "startColumn": 41,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 27,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 94,
+                            "endLine": 105,
+                            "startColumn": 90,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 19,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 67,
+                            "startColumn": 16,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 90,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 27,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 54,
+                            "startColumn": 28,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 98,
+                            "startColumn": 51,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CreateUserBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 26,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CreateUserBean.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 105,
+                            "startColumn": 69,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 3,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 108,
+                            "endLine": 105,
+                            "startColumn": 27,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8c730359-779c-4bb8-842d-9f7e9eec9768",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 3,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 108,
+                  "endLine": 105,
+                  "startColumn": 27,
+                  "startLine": 105
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dc0084283e27abdc:1"
+          },
+          "properties": {
+            "github/alertNumber": 156,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/156"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/UserEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 54,
+                  "startColumn": 28,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 55,
+                            "startColumn": 20,
+                            "startLine": 55
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 203,
+                            "startColumn": 16,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 177,
+                            "startColumn": 61,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 97,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 177,
+                            "startColumn": 27,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ebf01a0b-b542-4534-bfb8-6efc834676df",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 97,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 177,
+                  "startColumn": 27,
+                  "startLine": 177
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "258c1c096a50c8a2:1"
+          },
+          "properties": {
+            "github/alertNumber": 157,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/157"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargets.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 55,
+                  "startColumn": 20,
+                  "startLine": 55
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 44,
+                            "startColumn": 20,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 133,
+                            "startColumn": 16,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getInviteId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 76,
+                            "startColumn": 71,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 76,
+                            "startColumn": 23,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9c42bc3e-541f-4e35-b675-423d0fd90656",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 100,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 84,
+                  "endLine": 76,
+                  "startColumn": 23,
+                  "startLine": 76
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "16a0cfdfa449a0:1"
+          },
+          "properties": {
+            "github/alertNumber": 158,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/158"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 44,
+                  "startColumn": 20,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 44,
+                            "startColumn": 20,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "inviteId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 133,
+                            "startColumn": 16,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getInviteId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 98,
+                            "startColumn": 72,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 100,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 98,
+                            "startColumn": 23,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "7f6f871e-b2f5-4877-b731-54ce3296411e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 100,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 98,
+                  "startColumn": 23,
+                  "startLine": 98
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e9fbc081fdcb3d14:1"
+          },
+          "properties": {
+            "github/alertNumber": 159,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/159"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 44,
+                  "startColumn": 20,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 62,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 82,
+                            "endLine": 287,
+                            "startColumn": 21,
+                            "startLine": 287
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "73110080-451d-4b6c-830b-f18465bcbdca",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 6,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 82,
+                  "endLine": 287,
+                  "startColumn": 21,
+                  "startLine": 287
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "f7530e208e45d24:1"
+          },
+          "properties": {
+            "github/alertNumber": 160,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/160"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 26,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 81,
+                            "startColumn": 57,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : BookmarkBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 37,
+                            "startColumn": 19,
+                            "startLine": 37
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 28,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 38,
+                            "startColumn": 16,
+                            "startLine": 38
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 81,
+                            "startColumn": 57,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 27,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 81,
+                            "startColumn": 27,
+                            "startLine": 81
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4146ef22-9ac4-44a4-a961-81b4c30f3e47",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 27,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 81,
+                  "startColumn": 27,
+                  "startLine": 81
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "657f0b20856b6f00:1"
+          },
+          "properties": {
+            "github/alertNumber": 161,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/161"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarkEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 42,
+                  "startColumn": 26,
+                  "startLine": 42
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedBookmarks : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 53,
+                            "startColumn": 22,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedBookmarks : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 264,
+                            "startColumn": 16,
+                            "startLine": 264
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSelectedBookmarks(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 127,
+                            "startColumn": 34,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 135,
+                            "startColumn": 35,
+                            "startLine": 135
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "103b0f83-8a77-45d2-a1c5-df58206c78e3",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 101,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 72,
+                  "endLine": 135,
+                  "startColumn": 35,
+                  "startLine": 135
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ff73d92a560df12b:1"
+          },
+          "properties": {
+            "github/alertNumber": 162,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/162"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 53,
+                  "startColumn": 22,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "targetFolderId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 56,
+                            "startColumn": 20,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "targetFolderId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 272,
+                            "startColumn": 16,
+                            "startLine": 272
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTargetFolderId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 224,
+                            "startColumn": 61,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 224,
+                            "startColumn": 27,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2d10dd98-c9f4-410c-b8d3-c70e1c839a69",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 101,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 224,
+                  "startColumn": 27,
+                  "startLine": 224
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "efa587683c40e896:1"
+          },
+          "properties": {
+            "github/alertNumber": 163,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/163"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 56,
+                  "startColumn": 20,
+                  "startLine": 56
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 147,
+                            "startColumn": 16,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 128,
+                            "startColumn": 58,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 128,
+                            "startColumn": 27,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f76d5c39-d677-452a-b2e9-3313791725f2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 102,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 128,
+                  "startColumn": 27,
+                  "startLine": 128
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a9719996b2e89578:1"
+          },
+          "properties": {
+            "github/alertNumber": 164,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/164"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 150,
+                            "startColumn": 40,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 102,
+                            "startColumn": 19,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "status : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 103,
+                            "startColumn": 16,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getStatus(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 150,
+                            "startColumn": 40,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 150,
+                            "startColumn": 9,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 151,
+                            "startColumn": 40,
+                            "startLine": 151
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 114,
+                            "startColumn": 45,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sortBy : SortBy"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 115,
+                            "startColumn": 16,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSortBy(...) : SortBy"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 151,
+                            "startColumn": 40,
+                            "startLine": 151
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 151,
+                            "startColumn": 9,
+                            "startLine": 151
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 152,
+                            "startColumn": 41,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 78,
+                            "startColumn": 19,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 79,
+                            "startColumn": 16,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCategoryName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 152,
+                            "startColumn": 41,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 152,
+                            "startColumn": 9,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 54,
+                            "startColumn": 25,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 211,
+                            "startColumn": 16,
+                            "startLine": 211
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 145,
+                            "startColumn": 19,
+                            "startLine": 145
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 153,
+                            "startColumn": 38,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntriesBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 86,
+                            "startColumn": 19,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tagsAsString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 87,
+                            "startColumn": 16,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTagsAsString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 153,
+                            "startColumn": 38,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 153,
+                            "startColumn": 9,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 104,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntriesBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 157,
+                            "startColumn": 16,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 47,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 83,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "aabcd105-470d-4698-8ebd-818b9798d4c2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 103,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 83,
+                  "startColumn": 23,
+                  "startLine": 83
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "557415acae310e58:1"
+          },
+          "properties": {
+            "github/alertNumber": 165,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/165"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 54,
+                  "startColumn": 25,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 110,
+                            "startColumn": 61,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 75,
+                            "startColumn": 19,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 76,
+                            "startColumn": 16,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 110,
+                            "startColumn": 61,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 110,
+                            "startColumn": 25,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5029a039-6a5f-47a0-abb0-663fea7995fb",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 110,
+                  "startColumn": 25,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "92ab9039ddee9a70:1"
+          },
+          "properties": {
+            "github/alertNumber": 166,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/166"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 404,
+                            "startColumn": 39,
+                            "startLine": 404
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 83,
+                            "startColumn": 19,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 84,
+                            "startColumn": 16,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTitle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 404,
+                            "startColumn": 39,
+                            "startLine": 404
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 404,
+                            "startColumn": 9,
+                            "startLine": 404
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 405,
+                            "startColumn": 40,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 115,
+                            "startColumn": 19,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.locale : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 116,
+                            "startColumn": 16,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getLocale(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 405,
+                            "startColumn": 40,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 405,
+                            "startColumn": 9,
+                            "startLine": 405
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 406,
+                            "startColumn": 40,
+                            "startLine": 406
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 107,
+                            "startColumn": 19,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.status : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 108,
+                            "startColumn": 16,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getStatus(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 406,
+                            "startColumn": 40,
+                            "startLine": 406
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 406,
+                            "startColumn": 9,
+                            "startLine": 406
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 400,
+                            "startColumn": 19,
+                            "startLine": 400
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 407,
+                            "startColumn": 39,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 131,
+                            "startColumn": 19,
+                            "startLine": 131
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "categoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 132,
+                            "startColumn": 16,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCategoryId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 407,
+                            "startColumn": 39,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 407,
+                            "startColumn": 9,
+                            "startLine": 407
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 420,
+                            "startColumn": 16,
+                            "startLine": 420
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 55,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 261,
+                            "startColumn": 31,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e615a0dd-dd70-49ca-8797-27718cfee98c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 75,
+                  "endLine": 261,
+                  "startColumn": 31,
+                  "startLine": 261
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "837ed5e1954edcee:1"
+          },
+          "properties": {
+            "github/alertNumber": 167,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/167"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 262,
+                            "startColumn": 51,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 429,
+                            "startColumn": 22,
+                            "startLine": 429
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.status : PubStatus"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 430,
+                            "startColumn": 16,
+                            "startLine": 430
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getStatus(...) : PubStatus"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 262,
+                            "startColumn": 51,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 262,
+                            "startColumn": 31,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "13f584c7-50d0-4d83-8231-c5416b165325",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 262,
+                  "startColumn": 31,
+                  "startLine": 262
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "24b2ecea910dfe8b:1"
+          },
+          "properties": {
+            "github/alertNumber": 168,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/168"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 74,
+                            "startColumn": 20,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 297,
+                            "startColumn": 16,
+                            "startLine": 297
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 179,
+                            "startColumn": 69,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 103,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 179,
+                            "startColumn": 23,
+                            "startLine": 179
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2da349bd-92be-4a6c-a04e-2d97dafd0d6e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 103,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Entries.java"
+                },
+                "region": {
+                  "endColumn": 80,
+                  "endLine": 179,
+                  "startColumn": 23,
+                  "startLine": 179
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "3c3d6d28fe0ac319:1"
+          },
+          "properties": {
+            "github/alertNumber": 169,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/169"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 74,
+                  "startColumn": 20,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 74,
+                            "startColumn": 20,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 297,
+                            "startColumn": 16,
+                            "startLine": 297
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 436,
+                            "startColumn": 67,
+                            "startLine": 436
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 436,
+                            "startColumn": 21,
+                            "startLine": 436
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3bf1578e-b07d-492f-af26-5ea8579dc111",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 21,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 436,
+                  "startColumn": 21,
+                  "startLine": 436
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e725d07e7c88b470:1"
+          },
+          "properties": {
+            "github/alertNumber": 170,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/170"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 74,
+                  "startColumn": 20,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 166,
+                            "startColumn": 33,
+                            "startLine": 166
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 240,
+                            "startColumn": 22,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 148,
+                            "startColumn": 19,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dateString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 149,
+                            "startColumn": 16,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDateString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 114,
+                            "endLine": 246,
+                            "startColumn": 27,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 206,
+                            "startColumn": 40,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 240,
+                            "startColumn": 22,
+                            "startLine": 240
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 148,
+                            "startColumn": 19,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dateString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 149,
+                            "startColumn": 16,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDateString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 246,
+                            "startColumn": 47,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 114,
+                            "endLine": 246,
+                            "startColumn": 27,
+                            "startLine": 246
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1a5ab033-d569-4f9a-9463-c9d9bf89467f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 39,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                },
+                "region": {
+                  "endColumn": 114,
+                  "endLine": 246,
+                  "startColumn": 27,
+                  "startLine": 246
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "26d75d6d7a24881d:1"
+          },
+          "properties": {
+            "github/alertNumber": 171,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/171"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 126,
+                            "startColumn": 13,
+                            "startLine": 126
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 339,
+                            "startColumn": 17,
+                            "startLine": 339
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 379,
+                            "startColumn": 43,
+                            "startLine": 379
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 148,
+                            "startColumn": 19,
+                            "startLine": 148
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dateString : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 149,
+                            "startColumn": 16,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDateString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 379,
+                            "startColumn": 43,
+                            "startLine": 379
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 110,
+                            "endLine": 379,
+                            "startColumn": 23,
+                            "startLine": 379
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "165296aa-4741-4461-92ef-52821a6b760e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 39,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                },
+                "region": {
+                  "endColumn": 110,
+                  "endLine": 379,
+                  "startColumn": 23,
+                  "startLine": 379
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "26d75d6f513826f9:1"
+          },
+          "properties": {
+            "github/alertNumber": 172,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/172"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 92,
+                            "startColumn": 50,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 92,
+                            "startColumn": 50,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 92,
+                            "startColumn": 23,
+                            "startLine": 92
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b3086026-bcf0-4400-88a1-4b85a1532a0f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 105,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                },
+                "region": {
+                  "endColumn": 79,
+                  "endLine": 92,
+                  "startColumn": 23,
+                  "startLine": 92
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d4dd102c08d90c1:1"
+          },
+          "properties": {
+            "github/alertNumber": 173,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/173"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 125,
+                            "startColumn": 50,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 125,
+                            "startColumn": 50,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 105,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 125,
+                            "startColumn": 23,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "632d485e-fa4c-45a2-926c-efc3ebd76c46",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 105,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Maintenance.java"
+                },
+                "region": {
+                  "endColumn": 79,
+                  "endLine": 125,
+                  "startColumn": 23,
+                  "startLine": 125
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d4dd102c08d90c1:2"
+          },
+          "properties": {
+            "github/alertNumber": 174,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/174"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 26,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 424,
+                            "startColumn": 16,
+                            "startLine": 424
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 116,
+                            "startColumn": 19,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 117,
+                            "startColumn": 16,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 308,
+                            "startColumn": 28,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 310,
+                            "startColumn": 27,
+                            "startLine": 310
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "52f43174-13e0-4604-a677-df6a519e0bf2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 106,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 54,
+                  "endLine": 310,
+                  "startColumn": 27,
+                  "startLine": 310
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "20a17c3234a3da05:1"
+          },
+          "properties": {
+            "github/alertNumber": 175,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/175"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 66,
+                  "startColumn": 26,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 66,
+                            "startColumn": 26,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 424,
+                            "startColumn": 16,
+                            "startLine": 424
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CommentsBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 116,
+                            "startColumn": 19,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ids : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 107,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CommentsBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 117,
+                            "startColumn": 16,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getIds(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 307,
+                            "startColumn": 58,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 318,
+                            "startColumn": 48,
+                            "startLine": 318
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "instr : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 319,
+                            "startColumn": 34,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "split(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 319,
+                            "startColumn": 16,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stringToStringArray(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 308,
+                            "startColumn": 28,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 106,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 314,
+                            "startColumn": 31,
+                            "startLine": 314
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1522117a-442d-4572-b1b5-de8a5a945d03",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 106,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 314,
+                  "startColumn": 31,
+                  "startLine": 314
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4ed70b0e5448b45e:1"
+          },
+          "properties": {
+            "github/alertNumber": 176,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/176"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 66,
+                  "startColumn": 26,
+                  "startLine": 66
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 45,
+                            "startColumn": 20,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 124,
+                            "startColumn": 16,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 64,
+                            "startColumn": 63,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 64,
+                            "startColumn": 27,
+                            "startLine": 64
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f36e5bbe-6537-4323-a72f-036bc7e9aa59",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 108,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 76,
+                  "endLine": 64,
+                  "startColumn": 27,
+                  "startLine": 64
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2de25821cd1de8b5:1"
+          },
+          "properties": {
+            "github/alertNumber": 177,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/177"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 45,
+                  "startColumn": 20,
+                  "startLine": 45
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 45,
+                            "startColumn": 20,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 124,
+                            "startColumn": 16,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 112,
+                            "startColumn": 53,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 112,
+                            "startColumn": 27,
+                            "startLine": 112
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9ec0cef9-b2a1-475f-b968-4925b8517df5",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 108,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 112,
+                  "startColumn": 27,
+                  "startLine": 112
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "65c2f23a01b2ea88:1"
+          },
+          "properties": {
+            "github/alertNumber": 178,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/178"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 45,
+                  "startColumn": 20,
+                  "startLine": 45
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 23,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 99,
+                            "startColumn": 13,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 49,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 105,
+                            "startColumn": 23,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "d2ecaa4f-b056-48e3-b8cd-b0c84382b540",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 19,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 105,
+                  "startColumn": 23,
+                  "startLine": 105
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b5e80a74085fbf57:1"
+          },
+          "properties": {
+            "github/alertNumber": 179,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/179"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 43,
+                  "startColumn": 27,
+                  "startLine": 43
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 27,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 17,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 44,
+                            "startColumn": 19,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 45,
+                            "startColumn": 16,
+                            "startLine": 45
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 53,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 152,
+                            "startColumn": 27,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "85602b01-9593-4e7f-bbed-20a6733d39dc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 19,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 152,
+                  "startColumn": 27,
+                  "startLine": 152
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b5e80a74085fbf57:2"
+          },
+          "properties": {
+            "github/alertNumber": 180,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/180"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 43,
+                  "startColumn": 27,
+                  "startLine": 43
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 62,
+                            "startColumn": 59,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 62,
+                            "startColumn": 23,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "88af3b95-71e2-46f7-a09c-88d057ae446c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 75,
+                  "endLine": 62,
+                  "startColumn": 23,
+                  "startLine": 62
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e935fe04bb6f9dcd:1"
+          },
+          "properties": {
+            "github/alertNumber": 181,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/181"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.mediaFileId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 84,
+                            "startColumn": 23,
+                            "startLine": 84
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 84,
+                            "startColumn": 23,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "dfb174a8-5bd1-409f-abc3-84c27ee57c43",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 39,
+                  "endLine": 84,
+                  "startColumn": 23,
+                  "startLine": 83
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9cde679ae5dfb2ad:1"
+          },
+          "properties": {
+            "github/alertNumber": 182,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/182"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 44,
+                            "startColumn": 22,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 194,
+                            "startColumn": 16,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSelectedMediaFiles(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 103,
+                            "startColumn": 28,
+                            "startLine": 103
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 113,
+                            "startColumn": 31,
+                            "startLine": 113
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "391ce2d2-251d-4964-a652-d49e94adea2a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 113,
+                  "startColumn": 31,
+                  "startLine": 113
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7b8a91a5acbe13a1:1"
+          },
+          "properties": {
+            "github/alertNumber": 183,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/183"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 44,
+                  "startColumn": 22,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 76,
+                            "startColumn": 19,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDirectoryId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 205,
+                            "startColumn": 38,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 206,
+                            "startColumn": 9,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 205,
+                            "startColumn": 17,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 139,
+                            "startColumn": 21,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 140,
+                            "startColumn": 21,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 43,
+                            "startColumn": 27,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 76,
+                            "startColumn": 19,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 109,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 77,
+                            "startColumn": 16,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDirectoryId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 68,
+                            "endLine": 139,
+                            "startColumn": 42,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 205,
+                            "startColumn": 38,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 206,
+                            "startColumn": 34,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 206,
+                            "startColumn": 9,
+                            "startLine": 206
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediaFileBase [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 205,
+                            "startColumn": 17,
+                            "startLine": 205
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 139,
+                            "startColumn": 21,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 19,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 140,
+                            "startColumn": 21,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 138,
+                            "startColumn": 10,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : MediaFileEdit [selectedDirectory] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 153,
+                            "startColumn": 52,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 52,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 46,
+                            "startColumn": 20,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.selectedDirectory : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 150,
+                            "startColumn": 48,
+                            "startLine": 150
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 44,
+                            "startColumn": 22,
+                            "startLine": 44
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedMediaFiles : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 194,
+                            "startColumn": 16,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getSelectedMediaFiles(...) : String[]"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 139,
+                            "startColumn": 28,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 110,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 153,
+                            "startColumn": 31,
+                            "startLine": 152
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b12d37ec-2299-4d12-94b7-62176eb6c20f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 110,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 74,
+                  "endLine": 153,
+                  "startColumn": 31,
+                  "startLine": 152
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "177096fafb4d9b75:1"
+          },
+          "properties": {
+            "github/alertNumber": 184,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/184"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileEdit.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 43,
+                  "startColumn": 27,
+                  "startLine": 43
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 37,
+                  "endLine": 46,
+                  "startColumn": 20,
+                  "startLine": 46
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileBase.java"
+                },
+                "region": {
+                  "endColumn": 40,
+                  "endLine": 44,
+                  "startColumn": 22,
+                  "startLine": 44
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 135,
+                            "startColumn": 33,
+                            "startLine": 135
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 137,
+                            "startColumn": 20,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 54,
+                            "startColumn": 20,
+                            "startLine": 54
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.newDirectoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 57,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "a269929a-a6ff-4677-b4f2-4821fd6408ee",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 51,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 142,
+                  "startColumn": 27,
+                  "startLine": 142
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "7b4ccaec2d5b7aa9:1"
+          },
+          "properties": {
+            "github/alertNumber": 185,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/185"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 54,
+                  "startColumn": 20,
+                  "startLine": 54
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 111,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 141,
+                            "startColumn": 63,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 111,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 141,
+                            "startColumn": 63,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 111,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 141,
+                            "startColumn": 23,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4d360dff-b203-46b9-b613-11ddcc18f63d",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 111,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java"
+                },
+                "region": {
+                  "endColumn": 92,
+                  "endLine": 141,
+                  "startColumn": 23,
+                  "startLine": 141
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "5daecbdb7b22064c:1"
+          },
+          "properties": {
+            "github/alertNumber": 186,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/186"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "userName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 167,
+                            "startColumn": 16,
+                            "startLine": 167
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUserName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 97,
+                            "startColumn": 56,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 97,
+                            "startColumn": 23,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "6d131286-bcb6-4f20-9e4c-5db834e0d7af",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 58,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 69,
+                  "endLine": 97,
+                  "startColumn": 23,
+                  "startLine": 97
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c209e19334341b8d:1"
+          },
+          "properties": {
+            "github/alertNumber": 187,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/187"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 47,
+                  "startColumn": 20,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 117,
+                            "startColumn": 68,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 117,
+                            "startColumn": 68,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 117,
+                            "startColumn": 23,
+                            "startLine": 117
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "43a35c34-4773-4849-9aa1-498298afe1fa",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 58,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                },
+                "region": {
+                  "endColumn": 97,
+                  "endLine": 117,
+                  "startColumn": 23,
+                  "startLine": 117
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e4fb5ad4ad180ef2:1"
+          },
+          "properties": {
+            "github/alertNumber": 188,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/188"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 242,
+                            "startColumn": 16,
+                            "startLine": 242
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 88,
+                            "startColumn": 61,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 88,
+                            "startColumn": 27,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "507e73a1-0be4-4995-881c-66cc487794a2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 88,
+                  "startColumn": 27,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e04a6b6aca8504ab:1"
+          },
+          "properties": {
+            "github/alertNumber": 189,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/189"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 112,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 76,
+                            "startColumn": 56,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 112,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 76,
+                            "startColumn": 56,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 112,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 76,
+                            "startColumn": 23,
+                            "startLine": 76
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c61ed551-8088-4d0e-be80-4c0728d157ab",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 112,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MemberResign.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 76,
+                  "startColumn": 23,
+                  "startLine": 76
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4b6cd0b661ba1437:1"
+          },
+          "properties": {
+            "github/alertNumber": 190,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/190"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 52,
+                            "startColumn": 20,
+                            "startLine": 52
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 327
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 51,
+                            "startColumn": 20,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 325,
+                            "startColumn": 17,
+                            "startLine": 325
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 51,
+                            "startColumn": 20,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "directoryId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 326,
+                            "startColumn": 61,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 51,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 327,
+                            "startColumn": 27,
+                            "startLine": 326
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "df193433-5d5c-478e-97ee-785e0de562a6",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 51,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 327,
+                  "startColumn": 27,
+                  "startLine": 326
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "78646192f3a4dd15:1"
+          },
+          "properties": {
+            "github/alertNumber": 191,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/191"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 33,
+                  "endLine": 52,
+                  "startColumn": 20,
+                  "startLine": 52
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MediaFileView.java"
+                },
+                "region": {
+                  "endColumn": 31,
+                  "endLine": 51,
+                  "startColumn": 20,
+                  "startLine": 51
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 63,
+                            "startColumn": 56,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 63,
+                            "startColumn": 56,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 63,
+                            "startColumn": 23,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9b7a3384-b2ee-4ebf-b38d-5e871c20ed3e",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 73,
+                  "endLine": 63,
+                  "startColumn": 23,
+                  "startLine": 63
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ccfe1500868303e1:1"
+          },
+          "properties": {
+            "github/alertNumber": 192,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/192"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 91,
+                            "startColumn": 49,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 91,
+                            "startColumn": 49,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 91,
+                            "startColumn": 22,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8cd9c723-f094-4c92-b6f4-74cac784cf52",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 66,
+                  "endLine": 91,
+                  "startColumn": 22,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "54b60de8f12c08b4:1"
+          },
+          "properties": {
+            "github/alertNumber": 193,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/193"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 49,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "templateToSave : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 128,
+                            "startColumn": 48,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 128,
+                            "startColumn": 48,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 128,
+                            "startColumn": 27,
+                            "startLine": 128
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "91d204f9-8952-4028-8fea-a9d3712c52cc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 128,
+                  "startColumn": 27,
+                  "startLine": 128
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "70849f68c2ce9e5f:1"
+          },
+          "properties": {
+            "github/alertNumber": 194,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/194"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 140,
+                            "startColumn": 54,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 19,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 59,
+                            "startColumn": 16,
+                            "startLine": 59
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 140,
+                            "startColumn": 54,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 140,
+                            "startColumn": 27,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "3d9e3fee-9e7b-4dc8-95fe-8d19b272771f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 113,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 71,
+                  "endLine": 140,
+                  "startColumn": 27,
+                  "startLine": 140
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c8646bc0b902a577:1"
+          },
+          "properties": {
+            "github/alertNumber": 195,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/195"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 96,
+                            "startColumn": 71,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 96,
+                            "startColumn": 71,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 96,
+                            "startColumn": 23,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2112d65d-3643-42fc-ad18-ce96aac8ac0a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 100,
+                  "endLine": 96,
+                  "startColumn": 23,
+                  "startLine": 96
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "4231bb5f80349f05:1"
+          },
+          "properties": {
+            "github/alertNumber": 196,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/196"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 242,
+                            "startColumn": 16,
+                            "startLine": 242
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 127,
+                            "startColumn": 66,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 127,
+                            "startColumn": 27,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c9f14910-7283-483c-a1a2-c7617977cf8b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 83,
+                  "endLine": 127,
+                  "startColumn": 27,
+                  "startLine": 127
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "d46d96d191a9b479:1"
+          },
+          "properties": {
+            "github/alertNumber": 197,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/197"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 53,
+                            "startColumn": 20,
+                            "startLine": 53
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "pingTargetId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 242,
+                            "startColumn": 16,
+                            "startLine": 242
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPingTargetId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 147,
+                            "startColumn": 68,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 147,
+                            "startColumn": 27,
+                            "startLine": 147
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "b4f77c03-f435-4406-9503-cc8c68ba5416",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 147,
+                  "startColumn": 27,
+                  "startLine": 147
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e97dbb7062fc31fb:1"
+          },
+          "properties": {
+            "github/alertNumber": 198,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/198"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 53,
+                  "startColumn": 20,
+                  "startLine": 53
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 80,
+                            "startColumn": 32,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 188,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 196,
+                            "startColumn": 37,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 92,
+                            "endLine": 196,
+                            "startColumn": 37,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 106,
+                            "endLine": 196,
+                            "startColumn": 37,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 80,
+                            "startColumn": 32,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 188,
+                            "startColumn": 26,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 201,
+                            "startColumn": 35,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 201,
+                            "startColumn": 35,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 102,
+                            "endLine": 201,
+                            "startColumn": 35,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 80,
+                            "startColumn": 13,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 188,
+                            "startColumn": 17,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 189,
+                            "startColumn": 9,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 190,
+                            "startColumn": 9,
+                            "startLine": 190
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 191,
+                            "startColumn": 9,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 192,
+                            "startColumn": 9,
+                            "startLine": 192
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 193,
+                            "startColumn": 9,
+                            "startLine": 193
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 196,
+                            "startColumn": 13,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 47,
+                            "startColumn": 30,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 187,
+                            "startColumn": 16,
+                            "startLine": 187
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 80,
+                            "startColumn": 13,
+                            "startLine": 80
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 188,
+                            "startColumn": 17,
+                            "startLine": 188
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 189,
+                            "startColumn": 9,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 190,
+                            "startColumn": 9,
+                            "startLine": 190
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 191,
+                            "startColumn": 9,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 192,
+                            "startColumn": 9,
+                            "startLine": 192
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 193,
+                            "startColumn": 9,
+                            "startLine": 193
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : TemplateEditBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 198,
+                            "startColumn": 13,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 114,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 203,
+                            "startColumn": 13,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77a9d82c-dfa6-440c-9e5f-7f223f9d86ce",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 114,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEditBean.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 203,
+                  "startColumn": 13,
+                  "startLine": 203
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "3bb73411def690d:1"
+          },
+          "properties": {
+            "github/alertNumber": 199,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/199"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 47,
+                  "startColumn": 30,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 220,
+                            "startColumn": 67,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 220,
+                            "startColumn": 67,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 60,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 220,
+                            "startColumn": 23,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "517cf29a-8a1c-45bf-9c7e-ecd69e19a419",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 60,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Pings.java"
+                },
+                "region": {
+                  "endColumn": 96,
+                  "endLine": 220,
+                  "startColumn": 23,
+                  "startLine": 220
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9e58e514091e9f97:1"
+          },
+          "properties": {
+            "github/alertNumber": 200,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/200"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 100,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8db02d80-4c51-44e0-92c2-2169119510a1",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 52,
+                  "endLine": 100,
+                  "startColumn": 23,
+                  "startLine": 99
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dd3dc3c309dd0057:1"
+          },
+          "properties": {
+            "github/alertNumber": 201,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/201"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 144,
+                            "startColumn": 31,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 144,
+                            "startColumn": 31,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 144,
+                            "startColumn": 31,
+                            "startLine": 143
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "26bd94b7-1658-4041-96c4-c005c825331c",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 144,
+                  "startColumn": 31,
+                  "startLine": 143
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "93746885add03d92:1"
+          },
+          "properties": {
+            "github/alertNumber": 202,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/202"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 165,
+                            "startColumn": 31,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 165,
+                            "startColumn": 31,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 165,
+                            "startColumn": 31,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "e5d1167c-1c7f-4048-978e-dfae2ba97b50",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 165,
+                  "startColumn": 31,
+                  "startLine": 164
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "cdedbef8f62f7cef:1"
+          },
+          "properties": {
+            "github/alertNumber": 203,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/203"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 61,
+                            "endLine": 177,
+                            "startColumn": 46,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 190,
+                            "startColumn": 47,
+                            "startLine": 190
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 65,
+                            "startColumn": 20,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "selectedThemeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 201,
+                            "startColumn": 43,
+                            "startLine": 201
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 125,
+                            "startColumn": 25,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 204
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 204,
+                            "startColumn": 31,
+                            "startLine": 203
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "99872e47-568a-442d-9068-631fcfc1ad27",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 49,
+                  "endLine": 204,
+                  "startColumn": 31,
+                  "startLine": 203
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "ed4510e0f9f0c2a6:1"
+          },
+          "properties": {
+            "github/alertNumber": 204,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/204"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 35,
+                  "endLine": 65,
+                  "startColumn": 20,
+                  "startLine": 65
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 220,
+                            "startColumn": 58,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 220,
+                            "startColumn": 58,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 65,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 87,
+                            "endLine": 220,
+                            "startColumn": 31,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f53b223d-15d5-4192-a38e-da60222f4efe",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 65,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit.java"
+                },
+                "region": {
+                  "endColumn": 87,
+                  "endLine": 220,
+                  "startColumn": 31,
+                  "startLine": 220
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "177e9c611dba8940:1"
+          },
+          "properties": {
+            "github/alertNumber": 205,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/205"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 125,
+                            "startColumn": 23,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5db5b8f5-4d0c-4ece-b045-801ddf1a1e0a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 64,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 125,
+                  "startColumn": 23,
+                  "startLine": 124
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bbe5f53c1943b2bb:1"
+          },
+          "properties": {
+            "github/alertNumber": 206,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/206"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 88,
+                            "endLine": 198,
+                            "startColumn": 71,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 198,
+                            "startColumn": 71,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 198,
+                            "startColumn": 27,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5d6fdd33-79a8-46b2-9625-3b679c0b0916",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 64,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 100,
+                  "endLine": 198,
+                  "startColumn": 27,
+                  "startLine": 198
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "2f586fd102277914:1"
+          },
+          "properties": {
+            "github/alertNumber": 207,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/207"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 117,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 68,
+                            "startColumn": 52,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 117,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 68,
+                            "startColumn": 52,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 117,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 81,
+                            "endLine": 68,
+                            "startColumn": 23,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "c4cf84aa-07ba-4e53-9876-795a481136cc",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 117,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/WeblogRemove.java"
+                },
+                "region": {
+                  "endColumn": 81,
+                  "endLine": 68,
+                  "startColumn": 23,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "70954d47ac23d663:1"
+          },
+          "properties": {
+            "github/alertNumber": 208,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/208"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 119,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 41,
+                            "startColumn": 22,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 119,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 140,
+                            "startColumn": 16,
+                            "startLine": 140
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 73,
+                            "startColumn": 35,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 84,
+                            "startColumn": 31,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 74,
+                            "startColumn": 20,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 297,
+                            "startColumn": 16,
+                            "startLine": 297
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblog(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 73,
+                            "startColumn": 35,
+                            "startLine": 73
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 118,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 84,
+                            "startColumn": 31,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2fa2d98a-eb0b-4321-a709-67a391452306",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 118,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIActionInterceptor.java"
+                },
+                "region": {
+                  "endColumn": 43,
+                  "endLine": 84,
+                  "startColumn": 31,
+                  "startLine": 83
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "62ca04798b6faa47:1"
+          },
+          "properties": {
+            "github/alertNumber": 209,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/209"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAddWithMediaFile.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 41,
+                  "startColumn": 22,
+                  "startLine": 41
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 26,
+                  "endLine": 74,
+                  "startColumn": 20,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 77,
+                            "startColumn": 22,
+                            "startLine": 77
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.actionName : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 316,
+                            "startColumn": 16,
+                            "startLine": 316
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionName(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 120,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 104,
+                            "endLine": 96,
+                            "startColumn": 66,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new ..[] { .. } : Object[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 120,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 105,
+                            "endLine": 96,
+                            "startColumn": 38,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "format(...)"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 120,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                          },
+                          "region": {
+                            "endColumn": 105,
+                            "endLine": 96,
+                            "startColumn": 38,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "fdac3185-9439-4caa-a6cb-40ab527c5dc9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 120,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UISecurityInterceptor.java"
+                },
+                "region": {
+                  "endColumn": 105,
+                  "endLine": 96,
+                  "startColumn": 38,
+                  "startLine": 94
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "962d445059430f65:1"
+          },
+          "properties": {
+            "github/alertNumber": 210,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/210"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 77,
+                  "startColumn": 22,
+                  "startLine": 77
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 63,
+                            "startColumn": 27,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "07315db2-c8ba-401b-a736-677391775a91",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 63,
+                  "startColumn": 27,
+                  "startLine": 63
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "b34094cc00ca4ec0:1"
+          },
+          "properties": {
+            "github/alertNumber": 211,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/211"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 74,
+                            "startColumn": 50,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "u : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 35,
+                            "startColumn": 30,
+                            "startLine": 35
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "u : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 36,
+                            "startColumn": 21,
+                            "startLine": 36
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 46,
+                            "startColumn": 24,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 47,
+                            "startColumn": 20,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 47,
+                            "startColumn": 9,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 46,
+                            "startColumn": 17,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 36,
+                            "startColumn": 9,
+                            "startLine": 36
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 35,
+                            "startColumn": 12,
+                            "startLine": 35
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new MediacastResource(...) : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 74,
+                            "startColumn": 28,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "resource : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 75,
+                            "startColumn": 59,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 68,
+                            "startColumn": 19,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 71,
+                            "startColumn": 37,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 42,
+                            "startColumn": 19,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : MediacastResource [url] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 43,
+                            "startColumn": 16,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 43,
+                            "startColumn": 16,
+                            "startLine": 43
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 71,
+                            "startColumn": 37,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 71,
+                            "startColumn": 9,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "buf : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 121,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastResource.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 16,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 75,
+                            "startColumn": 59,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 75,
+                            "startColumn": 27,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4fac6e1e-19e9-49b1-ae3b-4c3712cfee5a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 75,
+                  "startColumn": 27,
+                  "startLine": 75
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c49505e0c11764a2:1"
+          },
+          "properties": {
+            "github/alertNumber": 212,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/212"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 79,
+                            "startColumn": 23,
+                            "startLine": 79
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "962b08f8-d219-485a-a960-9b5578dab531",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 79,
+                  "startColumn": 23,
+                  "startLine": 79
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1008b7dd6ea0080f:1"
+          },
+          "properties": {
+            "github/alertNumber": 213,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/213"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 72,
+                            "startColumn": 23,
+                            "startLine": 72
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 315,
+                            "startColumn": 16,
+                            "startLine": 315
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : EntryBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 223,
+                            "startColumn": 19,
+                            "startLine": 223
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "enclosureURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 39,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryBean.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 224,
+                            "startColumn": 16,
+                            "startLine": 224
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEnclosureURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 231,
+                            "startColumn": 49,
+                            "startLine": 231
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 48,
+                            "startColumn": 52,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 38,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 82,
+                            "startColumn": 23,
+                            "startLine": 82
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "07f4add2-9229-4be1-9b8c-0c56a41697f5",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 38,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MediacastUtil.java"
+                },
+                "region": {
+                  "endColumn": 91,
+                  "endLine": 82,
+                  "startColumn": 23,
+                  "startLine": 82
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dc3d8ec770b9fd99:1"
+          },
+          "properties": {
+            "github/alertNumber": 214,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/214"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 27,
+                  "endLine": 72,
+                  "startColumn": 23,
+                  "startLine": 72
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 85,
+                            "endLine": 89,
+                            "startColumn": 68,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 89,
+                            "startColumn": 68,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 89,
+                            "startColumn": 23,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "76b3452a-3ca7-45cd-b0c2-398728b196ff",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 97,
+                  "endLine": 89,
+                  "startColumn": 23,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "710108296b62b159:1"
+          },
+          "properties": {
+            "github/alertNumber": 215,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/215"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contentsMobile : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 51,
+                            "startColumn": 20,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsMobile : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 394,
+                            "startColumn": 16,
+                            "startLine": 394
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsMobile(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 84,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contentsStandard : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 20,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsStandard : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 378,
+                            "startColumn": 16,
+                            "startLine": 378
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsStandard(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 110,
+                            "startColumn": 46,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 362,
+                            "startColumn": 16,
+                            "startLine": 362
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 102,
+                            "startColumn": 41,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 100,
+                            "endLine": 102,
+                            "startColumn": 41,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 114,
+                            "endLine": 102,
+                            "startColumn": 41,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 385,
+                            "startColumn": 37,
+                            "startLine": 385
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 386,
+                            "startColumn": 33,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 386,
+                            "startColumn": 9,
+                            "startLine": 386
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 385,
+                            "startColumn": 17,
+                            "startLine": 385
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 115,
+                            "endLine": 102,
+                            "startColumn": 21,
+                            "startLine": 102
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 110,
+                            "startColumn": 46,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 377,
+                            "startColumn": 19,
+                            "startLine": 377
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : StylesheetEdit [contentsStandard] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 378,
+                            "startColumn": 16,
+                            "startLine": 378
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsStandard : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 378,
+                            "startColumn": 16,
+                            "startLine": 378
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsStandard(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 110,
+                            "startColumn": 46,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 362,
+                            "startColumn": 16,
+                            "startLine": 362
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 107,
+                            "startColumn": 39,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 191,
+                            "startColumn": 36,
+                            "startLine": 191
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "rnd : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 194,
+                            "startColumn": 24,
+                            "startLine": 194
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplateRendition(...) : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 96,
+                            "endLine": 107,
+                            "startColumn": 39,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : CustomTemplateRendition"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 66,
+                            "startColumn": 16,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 116,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/CustomTemplateRendition.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 67,
+                            "startColumn": 10,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 110,
+                            "endLine": 107,
+                            "startColumn": 39,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 401,
+                            "startColumn": 35,
+                            "startLine": 401
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "contents : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 402,
+                            "startColumn": 31,
+                            "startLine": 402
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 402,
+                            "startColumn": 9,
+                            "startLine": 402
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 401,
+                            "startColumn": 17,
+                            "startLine": 401
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> [post update] : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 111,
+                            "endLine": 107,
+                            "startColumn": 21,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 84,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 393,
+                            "startColumn": 19,
+                            "startLine": 393
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : StylesheetEdit [contentsMobile] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 394,
+                            "startColumn": 16,
+                            "startLine": 394
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.contentsMobile : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 394,
+                            "startColumn": 16,
+                            "startLine": 394
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getContentsMobile(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 84,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 103,
+                            "endLine": 110,
+                            "startColumn": 31,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "60a3d9f7-c4bb-4d7c-a6b8-5d965d3d8600",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 103,
+                  "endLine": 110,
+                  "startColumn": 31,
+                  "startLine": 110
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2).\nThis log entry depends on a [user-provided value](3)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "5018b90254358410:1"
+          },
+          "properties": {
+            "github/alertNumber": 216,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/216"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 34,
+                  "endLine": 51,
+                  "startColumn": 20,
+                  "startLine": 51
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 20,
+                  "startLine": 50
+                }
+              }
+            },
+            {
+              "id": 3,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 47,
+                  "startColumn": 28,
+                  "startLine": 47
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 182,
+                            "startColumn": 19,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 182,
+                            "startColumn": 19,
+                            "startLine": 182
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 182,
+                            "startColumn": 23,
+                            "startLine": 181
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "8d06229f-0e80-4e5e-88b7-994cd61d6faf",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 48,
+                  "endLine": 182,
+                  "startColumn": 23,
+                  "startLine": 181
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bd7a9eb3901d4af:1"
+          },
+          "properties": {
+            "github/alertNumber": 217,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/217"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 236,
+                            "startColumn": 27,
+                            "startLine": 236
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 236,
+                            "startColumn": 27,
+                            "startLine": 236
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 236,
+                            "startColumn": 27,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "29d72e86-dd59-4987-9c2a-0dde4984859f",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 56,
+                  "endLine": 236,
+                  "startColumn": 27,
+                  "startLine": 235
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "160555fcc52f7f85:1"
+          },
+          "properties": {
+            "github/alertNumber": 218,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/218"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 294,
+                            "startColumn": 80,
+                            "startLine": 294
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 294,
+                            "startColumn": 80,
+                            "startLine": 294
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 294,
+                            "startColumn": 27,
+                            "startLine": 294
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "83747de6-4a21-4123-b49e-c04dd1665dad",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 109,
+                  "endLine": 294,
+                  "startColumn": 27,
+                  "startLine": 294
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "8e79805d64699716:1"
+          },
+          "properties": {
+            "github/alertNumber": 219,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/219"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 97,
+                            "endLine": 330,
+                            "startColumn": 80,
+                            "startLine": 330
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 330,
+                            "startColumn": 80,
+                            "startLine": 330
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 109,
+                            "endLine": 330,
+                            "startColumn": 27,
+                            "startLine": 330
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "5b4fa81a-a47c-42bc-aaf2-17c9250bb45b",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 63,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 109,
+                  "endLine": 330,
+                  "startColumn": 27,
+                  "startLine": 330
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a30eb85eef86b517:1"
+          },
+          "properties": {
+            "github/alertNumber": 220,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/220"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 62,
+                            "startColumn": 20,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeId : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 336,
+                            "startColumn": 16,
+                            "startLine": 336
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 256,
+                            "startColumn": 54,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 64,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 256,
+                            "startColumn": 27,
+                            "startLine": 256
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ecc81f9d-475a-449f-a939-dc8dd6a876f9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 64,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 67,
+                  "endLine": 256,
+                  "startColumn": 27,
+                  "startLine": 256
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "5b57318b20ca45e8:1"
+          },
+          "properties": {
+            "github/alertNumber": 221,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/221"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Templates.java"
+                },
+                "region": {
+                  "endColumn": 28,
+                  "endLine": 62,
+                  "startColumn": 20,
+                  "startLine": 62
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackbackUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 78,
+                            "startColumn": 20,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackbackUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 363,
+                            "startColumn": 16,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTrackbackUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 388,
+                            "startColumn": 25,
+                            "startLine": 388
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 58,
+                            "startColumn": 42,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 90,
+                            "startColumn": 28,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 90,
+                            "startColumn": 13,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [trackbackURL] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 104,
+                            "startColumn": 51,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackbackURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 104,
+                            "startColumn": 51,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 104,
+                            "startColumn": 19,
+                            "startLine": 104
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "4212d01b-7d6d-440f-99b0-08515d3dab8a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 22,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                },
+                "region": {
+                  "endColumn": 63,
+                  "endLine": 104,
+                  "startColumn": 19,
+                  "startLine": 104
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6e26210b37442e22:1"
+          },
+          "properties": {
+            "github/alertNumber": 222,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/222"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 78,
+                  "startColumn": 20,
+                  "startLine": 78
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 263,
+                            "startColumn": 19,
+                            "startLine": 263
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 264,
+                            "startColumn": 16,
+                            "startLine": 264
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTitle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 107,
+                            "startColumn": 24,
+                            "startLine": 107
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "title : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 114,
+                            "startColumn": 74,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 80,
+                            "endLine": 114,
+                            "startColumn": 54,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 387,
+                            "startColumn": 53,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 58,
+                            "startColumn": 22,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 89,
+                            "startColumn": 21,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> [post update] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 18,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 58,
+                            "startColumn": 12,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new Trackback(...) : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 388,
+                            "startColumn": 39,
+                            "startLine": 387
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "trackback : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 389,
+                            "startColumn": 27,
+                            "startLine": 389
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 100,
+                            "startColumn": 27,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : Trackback [entry] : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 746,
+                            "startColumn": 19,
+                            "startLine": 746
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.method> : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 238,
+                            "startColumn": 19,
+                            "startLine": 238
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 239,
+                            "startColumn": 16,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWebsite(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 95,
+                            "endLine": 747,
+                            "startColumn": 83,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 83,
+                            "startColumn": 37,
+                            "startLine": 83
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 100,
+                            "startColumn": 48,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 100,
+                            "startColumn": 48,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 100,
+                            "startColumn": 9,
+                            "startLine": 100
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 116,
+                            "startColumn": 72,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 116,
+                            "startColumn": 52,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 116,
+                            "startColumn": 40,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 141,
+                            "startColumn": 16,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 116,
+                            "startColumn": 20,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 70,
+                            "endLine": 95,
+                            "startColumn": 24,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 16,
+                            "endLine": 95,
+                            "startColumn": 13,
+                            "startLine": 95
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 10,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/PreviewURLStrategy.java"
+                          },
+                          "region": {
+                            "endColumn": 74,
+                            "endLine": 114,
+                            "startColumn": 16,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getWeblogEntryURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 121,
+                            "endLine": 747,
+                            "startColumn": 16,
+                            "startLine": 747
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getPermalink(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 42,
+                            "endLine": 110,
+                            "startColumn": 22,
+                            "startLine": 110
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 75,
+                            "endLine": 116,
+                            "startColumn": 72,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 116,
+                            "startColumn": 52,
+                            "startLine": 116
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRequestURL(...) : StringBuffer"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 88,
+                            "startColumn": 42,
+                            "startLine": 88
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "requestURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 135,
+                            "endLine": 99,
+                            "startColumn": 118,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "fullUrl : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 125,
+                            "startColumn": 19,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 36,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 137,
+                            "startColumn": 49,
+                            "startLine": 137
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 139,
+                            "startColumn": 20,
+                            "startLine": 139
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeTrailingSlash(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 40,
+                            "endLine": 134,
+                            "startColumn": 16,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 88,
+                            "startColumn": 16,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteUrl(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 66,
+                            "startColumn": 34,
+                            "startLine": 66
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absPath : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 8,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 69,
+                            "endLine": 69,
+                            "startColumn": 62,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 175,
+                            "startColumn": 46,
+                            "startLine": 175
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "url : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 176,
+                            "startColumn": 30,
+                            "startLine": 176
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 51,
+                            "startColumn": 27,
+                            "startLine": 51
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "absoluteContextURL : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 9,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/config/WebloggerRuntimeConfig.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAbsoluteContextURL(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 76,
+                            "endLine": 85,
+                            "startColumn": 30,
+                            "startLine": 85
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 101,
+                            "startColumn": 32,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS [post update] : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 96,
+                            "startColumn": 17,
+                            "startLine": 96
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tempS : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 106,
+                            "startColumn": 39,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 42,
+                            "startColumn": 21,
+                            "startLine": 42
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "imageTags : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 119,
+                            "startColumn": 39,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "replaceAll(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 119,
+                            "startColumn": 20,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "text : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 30,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/business/plugins/entry/SmileysPlugin.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 63,
+                            "endLine": 960,
+                            "startColumn": 35,
+                            "startLine": 960
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 968,
+                            "startColumn": 52,
+                            "startLine": 968
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 968,
+                            "startColumn": 16,
+                            "startLine": 968
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "render(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 898,
+                            "startColumn": 16,
+                            "startLine": 898
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTransformedText(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 988,
+                            "startColumn": 34,
+                            "startLine": 988
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 1011,
+                            "startColumn": 52,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 1011,
+                            "startColumn": 16,
+                            "startLine": 1011
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "displayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 1019,
+                            "startColumn": 16,
+                            "startLine": 1019
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getDisplayContent(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 90,
+                            "endLine": 108,
+                            "startColumn": 65,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 141,
+                            "startColumn": 37,
+                            "startLine": 141
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 142,
+                            "startColumn": 27,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 153,
+                            "startColumn": 37,
+                            "startLine": 153
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 162,
+                            "startColumn": 20,
+                            "startLine": 162
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 44,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Utilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 142,
+                            "startColumn": 16,
+                            "startLine": 142
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeHTML(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 91,
+                            "endLine": 108,
+                            "startColumn": 44,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "left(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 47,
+                            "endLine": 109,
+                            "startColumn": 26,
+                            "startLine": 108
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "excerpt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 115,
+                            "startColumn": 76,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 43,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "str : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 69,
+                            "startColumn": 34,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 69,
+                            "startColumn": 16,
+                            "startLine": 69
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "encode(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 84,
+                            "endLine": 115,
+                            "startColumn": 56,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "of(...) : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 89,
+                            "endLine": 117,
+                            "startColumn": 38,
+                            "startLine": 114
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 118,
+                            "startColumn": 58,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 67,
+                            "endLine": 41,
+                            "startColumn": 41,
+                            "startLine": 41
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "params : Map [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entrySet(...) : Set [, ] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 48,
+                            "startColumn": 48,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 56,
+                            "startColumn": 32,
+                            "startLine": 56
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : Entry [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getValue(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 58,
+                            "startColumn": 32,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 58,
+                            "startColumn": 13,
+                            "startLine": 58
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "queryString : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 45,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/URLUtilities.java"
+                          },
+                          "region": {
+                            "endColumn": 38,
+                            "endLine": 61,
+                            "startColumn": 16,
+                            "startLine": 61
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getQueryString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 118,
+                            "startColumn": 30,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 22,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "1a0dc050-4297-409e-ae3d-937a4950ab42",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 22,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/Trackback.java"
+                },
+                "region": {
+                  "endColumn": 50,
+                  "endLine": 120,
+                  "startColumn": 19,
+                  "startLine": 120
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "fb28e345672306f2:1"
+          },
+          "properties": {
+            "github/alertNumber": 223,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/223"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/InitFilter.java"
+                },
+                "region": {
+                  "endColumn": 65,
+                  "endLine": 88,
+                  "startColumn": 42,
+                  "startLine": 88
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 75,
+                            "startColumn": 25,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 323,
+                            "startColumn": 16,
+                            "startLine": 323
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 202,
+                            "startColumn": 43,
+                            "startLine": 202
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "weblogEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 21,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 279,
+                            "startColumn": 41,
+                            "startLine": 279
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 198,
+                            "startColumn": 35,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 341,
+                            "startColumn": 19,
+                            "startLine": 341
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.anchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAnchor(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 19,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 48,
+                            "startColumn": 25,
+                            "startLine": 48
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "removeEntry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 132,
+                            "startColumn": 16,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getRemoveEntry(...) : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 78,
+                            "startColumn": 37,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 108,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 98,
+                            "startColumn": 41,
+                            "startLine": 98
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 198,
+                            "startColumn": 35,
+                            "startLine": 198
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "entry : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 48,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogEntry"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 341,
+                            "startColumn": 19,
+                            "startLine": 341
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.anchor : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 14,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogEntry.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 342,
+                            "startColumn": 16,
+                            "startLine": 342
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getAnchor(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 43,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 200,
+                            "startColumn": 19,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "9fb1a72f-c885-4786-9474-e1370a72e1f2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 200,
+                  "startColumn": 19,
+                  "startLine": 200
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "183a6a3c6a791432:1"
+          },
+          "properties": {
+            "github/alertNumber": 224,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/224"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java"
+                },
+                "region": {
+                  "endColumn": 30,
+                  "endLine": 75,
+                  "startColumn": 25,
+                  "startLine": 75
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 48,
+                  "startColumn": 25,
+                  "startLine": 48
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 149,
+                            "startColumn": 37,
+                            "startLine": 149
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 177,
+                            "startColumn": 41,
+                            "startLine": 177
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 101,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Bookmarks.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 245,
+                            "startColumn": 37,
+                            "startLine": 245
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 17,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/BookmarksImport.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 106,
+                            "startColumn": 45,
+                            "startLine": 106
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 207,
+                            "startColumn": 35,
+                            "startLine": 207
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 183,
+                            "startColumn": 19,
+                            "startLine": 183
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.handle : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 184,
+                            "startColumn": 16,
+                            "startLine": 184
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getHandle(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 45,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 209,
+                            "startColumn": 19,
+                            "startLine": 209
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "77228324-3c04-4651-adf7-e46f886cf3d4",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 209,
+                  "startColumn": 19,
+                  "startLine": 209
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "dc4216bb0c101837:1"
+          },
+          "properties": {
+            "github/alertNumber": 225,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/225"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 155,
+                            "startColumn": 16,
+                            "startLine": 155
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getCategory(...) : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 102,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                          },
+                          "region": {
+                            "endColumn": 54,
+                            "endLine": 121,
+                            "startColumn": 41,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 252,
+                            "startColumn": 35,
+                            "startLine": 252
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "category : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 254,
+                            "startColumn": 48,
+                            "startLine": 254
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogCategory"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 123,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 120,
+                            "startColumn": 19,
+                            "startLine": 120
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 123,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogCategory.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 121,
+                            "startColumn": 16,
+                            "startLine": 121
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 254,
+                            "startColumn": 48,
+                            "startLine": 254
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 254,
+                            "startColumn": 19,
+                            "startLine": 254
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ce998494-bc3d-4219-b19b-5b1f7328e291",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 254,
+                  "startColumn": 19,
+                  "startLine": 254
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "bdab8222b6b46f2d:1"
+          },
+          "properties": {
+            "github/alertNumber": 226,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/226"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/CategoryRemove.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 319,
+                            "startColumn": 41,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 362,
+                            "startColumn": 16,
+                            "startLine": 362
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 199,
+                            "startColumn": 45,
+                            "startLine": 199
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "stylesheet : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 51,
+                            "endLine": 229,
+                            "startColumn": 41,
+                            "startLine": 229
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 47,
+                            "startColumn": 28,
+                            "startLine": 47
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 305,
+                            "startColumn": 13,
+                            "startLine": 305
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 63,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 319,
+                            "startColumn": 41,
+                            "startLine": 319
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 50,
+                            "startColumn": 28,
+                            "startLine": 50
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 195,
+                            "startColumn": 16,
+                            "startLine": 195
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getTemplate(...) : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 62,
+                            "endLine": 115,
+                            "startColumn": 49,
+                            "startLine": 115
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "templateToSave : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 113,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 134,
+                            "startColumn": 41,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 261,
+                            "startColumn": 35,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "template : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 56,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : WeblogTemplate"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 24,
+                            "endLine": 62,
+                            "startColumn": 19,
+                            "startLine": 62
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.id : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 115,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/WeblogTemplate.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 63,
+                            "startColumn": 16,
+                            "startLine": 63
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getId(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 48,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 122,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 262,
+                            "startColumn": 19,
+                            "startLine": 262
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "bd15eefa-373a-45a2-b50b-e44b1ddf6d81",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 122,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/CacheManager.java"
+                },
+                "region": {
+                  "endColumn": 64,
+                  "endLine": 262,
+                  "startColumn": 19,
+                  "startLine": 262
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "1db59b021fb13669:1"
+          },
+          "properties": {
+            "github/alertNumber": 227,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/227"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/StylesheetEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 47,
+                  "startColumn": 28,
+                  "startLine": 47
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/TemplateEdit.java"
+                },
+                "region": {
+                  "endColumn": 36,
+                  "endLine": 50,
+                  "startColumn": 28,
+                  "startLine": 50
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 68,
+                            "startColumn": 25,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "bean : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 446,
+                            "startColumn": 16,
+                            "startLine": 446
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getBean(...) : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 26,
+                            "endLine": 196,
+                            "startColumn": 17,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : ProfileBean"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 134,
+                            "startColumn": 17,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 138,
+                            "startColumn": 36,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 164,
+                            "startColumn": 34,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 78,
+                            "endLine": 165,
+                            "startColumn": 66,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 58,
+                            "endLine": 94,
+                            "startColumn": 48,
+                            "startLine": 94
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 97,
+                            "startColumn": 42,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 90,
+                            "startColumn": 35,
+                            "startLine": 90
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 91,
+                            "startColumn": 26,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 118,
+                            "startColumn": 44,
+                            "startLine": 118
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 119,
+                            "startColumn": 26,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 122,
+                            "startColumn": 44,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 127,
+                            "startColumn": 40,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 53,
+                            "endLine": 374,
+                            "startColumn": 42,
+                            "startLine": 374
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "substring(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 396,
+                            "startColumn": 28,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens [post update] : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 23,
+                            "endLine": 396,
+                            "startColumn": 17,
+                            "startLine": 396
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 22,
+                            "endLine": 428,
+                            "startColumn": 16,
+                            "startLine": 428
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokenize(...) : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 127,
+                            "startColumn": 31,
+                            "startLine": 127
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "tokens : ArrayList [] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 35,
+                            "endLine": 130,
+                            "startColumn": 29,
+                            "startLine": 130
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "token : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 65,
+                            "endLine": 133,
+                            "startColumn": 60,
+                            "startLine": 133
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ... : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 343,
+                            "startColumn": 28,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret [post update] : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 343,
+                            "startColumn": 17,
+                            "startLine": 343
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 12,
+                            "endLine": 363,
+                            "startColumn": 9,
+                            "startLine": 363
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 365,
+                            "startColumn": 16,
+                            "startLine": 365
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 119,
+                            "startColumn": 16,
+                            "startLine": 119
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...) : SanitizeResult [html] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 31,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitizer(...).html : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 91,
+                            "startColumn": 16,
+                            "startLine": 91
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "sanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 97,
+                            "startColumn": 19,
+                            "startLine": 97
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ret : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 25,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/HTMLSanitizer.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 99,
+                            "startColumn": 16,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "conditionallySanitize(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 79,
+                            "endLine": 165,
+                            "startColumn": 30,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 13,
+                            "endLine": 165,
+                            "startColumn": 9,
+                            "startLine": 165
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 164,
+                            "startColumn": 17,
+                            "startLine": 164
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 138,
+                            "startColumn": 9,
+                            "startLine": 138
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "dataHolder [Return] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 5,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/ProfileBean.java"
+                          },
+                          "region": {
+                            "endColumn": 39,
+                            "endLine": 134,
+                            "startColumn": 24,
+                            "startLine": 134
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud [post update] : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 36,
+                            "endLine": 196,
+                            "startColumn": 34,
+                            "startLine": 196
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 235,
+                            "startColumn": 44,
+                            "startLine": 235
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 281,
+                            "startColumn": 42,
+                            "startLine": 281
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "ud : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 6,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 285,
+                            "startColumn": 44,
+                            "startLine": 285
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 200,
+                            "startColumn": 48,
+                            "startLine": 200
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "user : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 160,
+                            "startColumn": 19,
+                            "startLine": 160
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this : User [emailAddress] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 20,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 2,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/User.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 161,
+                            "startColumn": 16,
+                            "startLine": 161
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 220,
+                            "startColumn": 42,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 220,
+                            "startColumn": 27,
+                            "startLine": 220
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 239,
+                            "startColumn": 35,
+                            "startLine": 239
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 64,
+                            "endLine": 690,
+                            "startColumn": 53,
+                            "startLine": 690
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 29,
+                            "endLine": 692,
+                            "startColumn": 27,
+                            "startLine": 692
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 568,
+                            "startColumn": 49,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "to : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 55,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 594,
+                            "startColumn": 31,
+                            "startLine": 594
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "f19c7918-64aa-4384-b5a0-8ef07c29aaa7",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 46,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 594,
+                  "startColumn": 31,
+                  "startLine": 594
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "822a9d43166c586a:1"
+          },
+          "properties": {
+            "github/alertNumber": 228,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/228"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java"
+                },
+                "region": {
+                  "endColumn": 29,
+                  "endLine": 68,
+                  "startColumn": 25,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 32,
+                            "endLine": 71,
+                            "startColumn": 20,
+                            "startLine": 71
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "actionWeblog : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 56,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                          },
+                          "region": {
+                            "endColumn": 28,
+                            "endLine": 289,
+                            "startColumn": 16,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getActionWeblog(...) : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 58,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java"
+                          },
+                          "region": {
+                            "endColumn": 72,
+                            "endLine": 132,
+                            "startColumn": 55,
+                            "startLine": 132
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 144,
+                            "startColumn": 45,
+                            "startLine": 144
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "website : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 156,
+                            "startColumn": 27,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : Weblog"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 307,
+                            "startColumn": 19,
+                            "startLine": 307
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this.emailAddress : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 57,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/pojos/Weblog.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 308,
+                            "startColumn": 16,
+                            "startLine": 308
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getEmailAddress(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 52,
+                            "endLine": 156,
+                            "startColumn": 27,
+                            "startLine": 156
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "from : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 45,
+                            "endLine": 157,
+                            "startColumn": 41,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "{...} : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 157,
+                            "startColumn": 27,
+                            "startLine": 157
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 189,
+                            "startColumn": 31,
+                            "startLine": 189
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 77,
+                            "endLine": 676,
+                            "startColumn": 66,
+                            "startLine": 676
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 678,
+                            "startColumn": 31,
+                            "startLine": 678
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 73,
+                            "endLine": 568,
+                            "startColumn": 62,
+                            "startLine": 568
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cc : String[] [[]] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 57,
+                            "endLine": 606,
+                            "startColumn": 55,
+                            "startLine": 606
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "...[...] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 606,
+                            "startColumn": 55,
+                            "startLine": 606
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 46,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                          },
+                          "region": {
+                            "endColumn": 60,
+                            "endLine": 606,
+                            "startColumn": 31,
+                            "startLine": 606
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "ef231074-5b19-4031-8d46-0de9735bfcf9",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 46,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/MailUtil.java"
+                },
+                "region": {
+                  "endColumn": 60,
+                  "endLine": 606,
+                  "startColumn": 31,
+                  "startLine": 606
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "729fc11618ef7b86:1"
+          },
+          "properties": {
+            "github/alertNumber": 229,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/229"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/struts2/util/UIAction.java"
+                },
+                "region": {
+                  "endColumn": 32,
+                  "endLine": 71,
+                  "startColumn": 20,
+                  "startLine": 71
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 65,
+                            "startColumn": 31,
+                            "startLine": 65
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "salt : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 77,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 67,
+                            "startColumn": 67,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 75,
+                            "startColumn": 23,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 93,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/SaltCache.java"
+                          },
+                          "region": {
+                            "endColumn": 86,
+                            "endLine": 78,
+                            "startColumn": 83,
+                            "startLine": 78
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 75,
+                            "startColumn": 36,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 86,
+                            "startColumn": 27,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getParameter(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 89,
+                            "startColumn": 26,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this [post update] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 17,
+                            "endLine": 89,
+                            "startColumn": 13,
+                            "startLine": 89
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this [Return] : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 25,
+                            "endLine": 46,
+                            "startColumn": 12,
+                            "startLine": 46
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "new PlanetRequest(...) : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 87,
+                            "startColumn": 29,
+                            "startLine": 87
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 49,
+                            "endLine": 124,
+                            "startColumn": 36,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 59,
+                            "endLine": 261,
+                            "startColumn": 32,
+                            "startLine": 261
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "planetRequest : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 55,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "parameter this : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 27,
+                            "endLine": 122,
+                            "startColumn": 19,
+                            "startLine": 122
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "this <.field> : PlanetRequest [group] : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "group : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 85,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                          },
+                          "region": {
+                            "endColumn": 21,
+                            "endLine": 123,
+                            "startColumn": 16,
+                            "startLine": 123
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "getGroup(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 66,
+                            "endLine": 289,
+                            "startColumn": 42,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "append(...) [post update] : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 34,
+                            "endLine": 289,
+                            "startColumn": 13,
+                            "startLine": 289
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : StringBuilder"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 19,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "toString(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 30,
+                            "endLine": 292,
+                            "startColumn": 16,
+                            "startLine": 292
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "generateKey(...) : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 50,
+                            "endLine": 124,
+                            "startColumn": 19,
+                            "startLine": 124
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "cacheKey : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 92,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PlanetFeedServlet.java"
+                          },
+                          "region": {
+                            "endColumn": 71,
+                            "endLine": 125,
+                            "startColumn": 63,
+                            "startLine": 125
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 33,
+                            "endLine": 99,
+                            "startColumn": 23,
+                            "startLine": 99
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 91,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/cache/PlanetCache.java"
+                          },
+                          "region": {
+                            "endColumn": 44,
+                            "endLine": 105,
+                            "startColumn": 41,
+                            "startLine": 105
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "key : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 75,
+                            "startColumn": 36,
+                            "startLine": 75
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "... + ..."
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 124,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                          },
+                          "region": {
+                            "endColumn": 46,
+                            "endLine": 86,
+                            "startColumn": 27,
+                            "startLine": 86
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "26b1eeac-5141-4014-a781-28ef17e39a15",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 124,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/util/cache/ExpiringLRUCacheImpl.java"
+                },
+                "region": {
+                  "endColumn": 46,
+                  "endLine": 86,
+                  "startColumn": 27,
+                  "startLine": 86
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "This log entry depends on a [user-provided value](1).\nThis log entry depends on a [user-provided value](2)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "546e4f7b5b936523:1"
+          },
+          "properties": {
+            "github/alertNumber": 230,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/230"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/filters/ValidateSaltFilter.java"
+                },
+                "region": {
+                  "endColumn": 59,
+                  "endLine": 65,
+                  "startColumn": 31,
+                  "startLine": 65
+                }
+              }
+            },
+            {
+              "id": 2,
+              "message": {
+                "text": "user-provided value"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/rendering/util/PlanetRequest.java"
+                },
+                "region": {
+                  "endColumn": 55,
+                  "endLine": 89,
+                  "startColumn": 26,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/log-injection",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 57
+          },
+          "ruleId": "java/log-injection"
+        },
+        {
+          "correlationGuid": "a1170d86-7c37-488c-bb35-b84a36129829",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 125,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java"
+                },
+                "region": {
+                  "endColumn": 68,
+                  "endLine": 112,
+                  "startColumn": 32,
+                  "startLine": 112
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Local information disclosure vulnerability due to use of file readable by other local users."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "769d6f2fa26ee422:1"
+          },
+          "properties": {
+            "github/alertNumber": 231,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/231"
+          },
+          "rule": {
+            "id": "java/local-temp-file-or-directory-information-disclosure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 56
+          },
+          "ruleId": "java/local-temp-file-or-directory-information-disclosure"
+        },
+        {
+          "correlationGuid": "572ab260-9caa-473e-9ce9-f52650c68357",
+          "level": "warning",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 125,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/MediaCollection.java"
+                },
+                "region": {
+                  "endColumn": 88,
+                  "endLine": 385,
+                  "startColumn": 32,
+                  "startLine": 385
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Local information disclosure vulnerability due to use of file readable by other local users."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e195ced2df5b9121:1"
+          },
+          "properties": {
+            "github/alertNumber": 232,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/232"
+          },
+          "rule": {
+            "id": "java/local-temp-file-or-directory-information-disclosure",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 56
+          },
+          "ruleId": "java/local-temp-file-or-directory-information-disclosure"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "\"openid\" : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 37,
+                            "endLine": 67,
+                            "startColumn": 29,
+                            "startLine": 67
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "name"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 83,
+                            "endLine": 74,
+                            "startColumn": 79,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "2bfe5c94-f8fc-449e-8218-135bc89d2b5a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 126,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 37,
+                  "endLine": 67,
+                  "startColumn": 29,
+                  "startLine": 67
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "a500482b991099df:1"
+          },
+          "properties": {
+            "github/alertNumber": 233,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/233"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 83,
+                  "endLine": 74,
+                  "startColumn": 79,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "codeFlows": [
+            {
+              "threadFlows": [
+                {
+                  "locations": [
+                    {
+                      "location": {
+                        "message": {
+                          "text": "\"openid\" : String"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 41,
+                            "endLine": 68,
+                            "startColumn": 33,
+                            "startLine": 68
+                          }
+                        }
+                      }
+                    },
+                    {
+                      "location": {
+                        "message": {
+                          "text": "password"
+                        },
+                        "physicalLocation": {
+                          "artifactLocation": {
+                            "index": 126,
+                            "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                          },
+                          "region": {
+                            "endColumn": 93,
+                            "endLine": 74,
+                            "startColumn": 85,
+                            "startLine": 74
+                          }
+                        }
+                      }
+                    }
+                  ]
+                }
+              ]
+            }
+          ],
+          "correlationGuid": "0295d78d-5e92-4819-acd2-8a8496620a84",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 126,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 41,
+                  "endLine": 68,
+                  "startColumn": 33,
+                  "startLine": 68
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "9ba9d6aa99627a6c:1"
+          },
+          "properties": {
+            "github/alertNumber": 234,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/234"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/main/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java"
+                },
+                "region": {
+                  "endColumn": 93,
+                  "endLine": 74,
+                  "startColumn": 85,
+                  "startLine": 74
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "245cfa4f-d3f8-406f-ab07-ca7cf6a13e38",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 91,
+                  "startColumn": 90,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e905a830e1ee5337:1"
+          },
+          "properties": {
+            "github/alertNumber": 235,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/235"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 95,
+                  "endLine": 91,
+                  "startColumn": 90,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "2ebb03dc-5d07-42a7-b580-b0cb00443a82",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 102,
+                  "endLine": 91,
+                  "startColumn": 97,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "e905a830e1ee5337:1"
+          },
+          "properties": {
+            "github/alertNumber": 236,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/236"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 102,
+                  "endLine": 91,
+                  "startColumn": 97,
+                  "startLine": 91
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "2912676f-9b95-409b-bd98-d3ff68c35009",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 119,
+                  "startColumn": 65,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 237,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/237"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 70,
+                  "endLine": 119,
+                  "startColumn": 65,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "1be22471-4010-453b-aae8-77bf410740c2",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 127,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 77,
+                  "endLine": 119,
+                  "startColumn": 72,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 238,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/238"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/testing/DerbyJunitExtension.java"
+                },
+                "region": {
+                  "endColumn": 77,
+                  "endLine": 119,
+                  "startColumn": 72,
+                  "startLine": 119
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "f2073399-017c-4d54-bc6d-309c834d1932",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 60,
+                  "startColumn": 80,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d72a93cd13542b0:1"
+          },
+          "properties": {
+            "github/alertNumber": 239,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/239"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 60,
+                  "startColumn": 80,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "5d3d4716-a42f-45a8-9b26-dd603a91fe1a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 92,
+                  "endLine": 60,
+                  "startColumn": 87,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "6d72a93cd13542b0:1"
+          },
+          "properties": {
+            "github/alertNumber": 240,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/240"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 92,
+                  "endLine": 60,
+                  "startColumn": 87,
+                  "startLine": 60
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "af72ac60-0e42-423b-9c6a-378937a82d5a",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 89,
+                  "startColumn": 73,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 241,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/241"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 78,
+                  "endLine": 89,
+                  "startColumn": 73,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        },
+        {
+          "correlationGuid": "910f1f91-bfa9-40ac-b3ac-e57bf84d0642",
+          "level": "error",
+          "locations": [
+            {
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 128,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 89,
+                  "startColumn": 80,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "message": {
+            "text": "Hard-coded value flows to [sensitive API call](1)."
+          },
+          "partialFingerprints": {
+            "primaryLocationLineHash": "c5ecbd4f179888bd:1"
+          },
+          "properties": {
+            "github/alertNumber": 242,
+            "github/alertUrl": "https://api.github.com/repos/nahsra/roller/code-scanning/alerts/242"
+          },
+          "relatedLocations": [
+            {
+              "id": 1,
+              "message": {
+                "text": "sensitive API call"
+              },
+              "physicalLocation": {
+                "artifactLocation": {
+                  "index": 0,
+                  "uri": "app/src/test/java/org/apache/roller/util/DerbyManager.java"
+                },
+                "region": {
+                  "endColumn": 85,
+                  "endLine": 89,
+                  "startColumn": 80,
+                  "startLine": 89
+                }
+              }
+            }
+          ],
+          "rule": {
+            "id": "java/hardcoded-credential-api-call",
+            "toolComponent": {
+              "index": 0
+            },
+            "index": 37
+          },
+          "ruleId": "java/hardcoded-credential-api-call"
+        }
+      ],
+      "tool": {
+        "driver": {
+          "name": "CodeQL",
+          "semanticVersion": "2.19.4"
+        },
+        "extensions": [
+          {
+            "name": "codeql/java-queries",
+            "rules": [
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Creating an intent with a URI pointing to a untrusted file can lead to the installation of an untrusted application."
+                },
+                "help": {
+                  "markdown": "# Android APK installation\nAndroid allows an application to install an Android Package Kit (APK) using an `Intent` with the `\"application/vnd.android.package-archive\"` MIME type. If the file used in the `Intent` is from a location that is not controlled by the application (for example, an SD card that is universally writable), this can result in the unintended installation of untrusted applications.\n\n\n## Recommendation\nYou should install packages using the `PackageInstaller` class.\n\nIf you need to install from a file, you should use a `FileProvider`. Content providers can provide more specific permissions than file system permissions can.\n\nWhen your application does not require package installations, do not add the `REQUEST_INSTALL_PACKAGES` permission in the manifest file.\n\n\n## Example\nIn the following (bad) example, the package is installed from a file which may be altered by another application:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Intent;\nimport android.net.Uri;\nimport android.os.Environment;\n\nimport java.io.File;\n\n/* Get a file from external storage */\nFile file = new File(Environment.getExternalStorageDirectory(), \"myapp.apk\");\nIntent intent = new Intent(Intent.ACTION_VIEW);\n/* Set the mimetype to APK */\nintent.setDataAndType(Uri.fromFile(file), \"application/vnd.android.package-archive\");\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed by using a `FileProvider`:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.Intent;\nimport android.net.Uri;\nimport androidx.core.content.FileProvider;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\n\nString tempFilename = \"temporary.apk\";\nbyte[] buffer = new byte[16384];\n\n/* Copy application asset into temporary file */\ntry (InputStream is = getAssets().open(assetName);\n     FileOutputStream fout = openFileOutput(tempFilename, Context.MODE_PRIVATE)) {\n    int n;\n    while ((n=is.read(buffer)) >= 0) {\n        fout.write(buffer, 0, n);\n    }\n}\n\n/* Expose temporary file with FileProvider */\nFile toInstall = new File(this.getFilesDir(), tempFilename);\nUri applicationUri = FileProvider.getUriForFile(this, \"com.example.apkprovider\", toInstall);\n\n/* Create Intent and set data to APK file. */\nIntent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);\nintent.setData(applicationUri);\nintent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed using an instance of the `android.content.pm.PackageInstaller` class:\n\n\n```java\nimport android.content.Context;\nimport android.content.Intent;\nimport android.content.pm.PackageInstaller;\n\nprivate static final String PACKAGE_INSTALLED_ACTION =\n    \"com.example.SESSION_API_PACKAGE_INSTALLED\";\n\n/* Create the package installer and session */\nPackageInstaller packageInstaller = getPackageManager().getPackageInstaller();\nPackageInstaller.SessionParams params =\n    new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);\nint sessionId = packageInstaller.createSession(params);\nsession = packageInstaller.openSession(sessionId);\n\n/* Load asset into session */\ntry (OutputStream packageInSession = session.openWrite(\"package\", 0, -1);\n     InputStream is = getAssets().open(assetName)) {\n    byte[] buffer = new byte[16384];\n    int n;\n    while ((n = is.read(buffer)) >= 0) {\n        packageInSession.write(buffer, 0, n);\n    }\n}\n\n/* Create status receiver */\nIntent intent = new Intent(this, InstallApkSessionApi.class);\nintent.setAction(PACKAGE_INSTALLED_ACTION);\nPendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);\nIntentSender statusReceiver = pendingIntent.getIntentSender();\n\n/* Commit the session */\nsession.commit(statusReceiver);\n\n```\n\n## References\n* Android Developers: [Intent.ACTION_INSTALL_PACKAGE](https://developer.android.com/reference/android/content/Intent#ACTION_INSTALL_PACKAGE).\n* Android Developers: [Manifest.permission.REQUEST_INSTALL_PACKAGES](https://developer.android.com/reference/android/Manifest.permission#REQUEST_INSTALL_PACKAGES).\n* Android Developers: [PackageInstaller](https://developer.android.com/reference/android/content/pm/PackageInstaller).\n* Android Developers: [FileProvider](https://developer.android.com/reference/androidx/core/content/FileProvider).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Android APK installation\nAndroid allows an application to install an Android Package Kit (APK) using an `Intent` with the `\"application/vnd.android.package-archive\"` MIME type. If the file used in the `Intent` is from a location that is not controlled by the application (for example, an SD card that is universally writable), this can result in the unintended installation of untrusted applications.\n\n\n## Recommendation\nYou should install packages using the `PackageInstaller` class.\n\nIf you need to install from a file, you should use a `FileProvider`. Content providers can provide more specific permissions than file system permissions can.\n\nWhen your application does not require package installations, do not add the `REQUEST_INSTALL_PACKAGES` permission in the manifest file.\n\n\n## Example\nIn the following (bad) example, the package is installed from a file which may be altered by another application:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Intent;\nimport android.net.Uri;\nimport android.os.Environment;\n\nimport java.io.File;\n\n/* Get a file from external storage */\nFile file = new File(Environment.getExternalStorageDirectory(), \"myapp.apk\");\nIntent intent = new Intent(Intent.ACTION_VIEW);\n/* Set the mimetype to APK */\nintent.setDataAndType(Uri.fromFile(file), \"application/vnd.android.package-archive\");\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed by using a `FileProvider`:\n\n\n```java\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.Intent;\nimport android.net.Uri;\nimport androidx.core.content.FileProvider;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\n\nString tempFilename = \"temporary.apk\";\nbyte[] buffer = new byte[16384];\n\n/* Copy application asset into temporary file */\ntry (InputStream is = getAssets().open(assetName);\n     FileOutputStream fout = openFileOutput(tempFilename, Context.MODE_PRIVATE)) {\n    int n;\n    while ((n=is.read(buffer)) >= 0) {\n        fout.write(buffer, 0, n);\n    }\n}\n\n/* Expose temporary file with FileProvider */\nFile toInstall = new File(this.getFilesDir(), tempFilename);\nUri applicationUri = FileProvider.getUriForFile(this, \"com.example.apkprovider\", toInstall);\n\n/* Create Intent and set data to APK file. */\nIntent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);\nintent.setData(applicationUri);\nintent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);\n\nstartActivity(intent);\n\n```\nIn the following (good) example, the package is installed using an instance of the `android.content.pm.PackageInstaller` class:\n\n\n```java\nimport android.content.Context;\nimport android.content.Intent;\nimport android.content.pm.PackageInstaller;\n\nprivate static final String PACKAGE_INSTALLED_ACTION =\n    \"com.example.SESSION_API_PACKAGE_INSTALLED\";\n\n/* Create the package installer and session */\nPackageInstaller packageInstaller = getPackageManager().getPackageInstaller();\nPackageInstaller.SessionParams params =\n    new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);\nint sessionId = packageInstaller.createSession(params);\nsession = packageInstaller.openSession(sessionId);\n\n/* Load asset into session */\ntry (OutputStream packageInSession = session.openWrite(\"package\", 0, -1);\n     InputStream is = getAssets().open(assetName)) {\n    byte[] buffer = new byte[16384];\n    int n;\n    while ((n = is.read(buffer)) >= 0) {\n        packageInSession.write(buffer, 0, n);\n    }\n}\n\n/* Create status receiver */\nIntent intent = new Intent(this, InstallApkSessionApi.class);\nintent.setAction(PACKAGE_INSTALLED_ACTION);\nPendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);\nIntentSender statusReceiver = pendingIntent.getIntentSender();\n\n/* Commit the session */\nsession.commit(statusReceiver);\n\n```\n\n## References\n* Android Developers: [Intent.ACTION_INSTALL_PACKAGE](https://developer.android.com/reference/android/content/Intent#ACTION_INSTALL_PACKAGE).\n* Android Developers: [Manifest.permission.REQUEST_INSTALL_PACKAGES](https://developer.android.com/reference/android/Manifest.permission#REQUEST_INSTALL_PACKAGES).\n* Android Developers: [PackageInstaller](https://developer.android.com/reference/android/content/pm/PackageInstaller).\n* Android Developers: [FileProvider](https://developer.android.com/reference/androidx/core/content/FileProvider).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/android/arbitrary-apk-installation",
+                "name": "java/android/arbitrary-apk-installation",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/ArbitraryApkInstallation.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android APK installation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "note"
+                },
+                "fullDescription": {
+                  "text": "Allowing application backups may allow an attacker to extract sensitive data."
+                },
+                "help": {
+                  "markdown": "# Application backup allowed\nIn the Android manifest file, you can use the `android:allowBackup` attribute of the `application` element to define whether the application will have automatic backups or not.\n\nIf your application uses any sensitive data, you should disable automatic backups to prevent attackers from extracting it.\n\n\n## Recommendation\nFor Android applications which process sensitive data, set `android:allowBackup` to `false` in the manifest file.\n\nNote: Since Android 6.0 (Marshmallow), automatic backups for applications are switched on by default.\n\n\n## Example\nIn the following two (bad) examples, the `android:allowBackup` setting is enabled:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nIn the following (good) example, `android:allowBackup` is set to `false`:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Documentation: [Back up user data with Auto Backup](https://developer.android.com/guide/topics/data/autobackup#EnablingAutoBackup)\n* OWASP Mobile Security Testing Guide: [ Android Backups ](https://github.com/OWASP/owasp-mstg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#backups)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Application backup allowed\nIn the Android manifest file, you can use the `android:allowBackup` attribute of the `application` element to define whether the application will have automatic backups or not.\n\nIf your application uses any sensitive data, you should disable automatic backups to prevent attackers from extracting it.\n\n\n## Recommendation\nFor Android applications which process sensitive data, set `android:allowBackup` to `false` in the manifest file.\n\nNote: Since Android 6.0 (Marshmallow), automatic backups for applications are switched on by default.\n\n\n## Example\nIn the following two (bad) examples, the `android:allowBackup` setting is enabled:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nIn the following (good) example, `android:allowBackup` is set to `false`:\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Documentation: [Back up user data with Auto Backup](https://developer.android.com/guide/topics/data/autobackup#EnablingAutoBackup)\n* OWASP Mobile Security Testing Guide: [ Android Backups ](https://github.com/OWASP/owasp-mstg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#backups)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/backup-enabled",
+                "name": "java/android/backup-enabled",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/AllowBackupAttributeEnabled.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Application backup allowed"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Cleartext Storage of Sensitive Information using a local database on Android allows access for users with root privileges or unexpected exposure from chained vulnerabilities."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information using a local database on Android\nSQLite is a lightweight database engine commonly used in Android devices to store data. By itself, SQLite does not offer any encryption mechanism by default and stores all data in cleartext, which introduces a risk if sensitive data like credentials, authentication tokens or personal identifiable information (PII) are directly stored in a SQLite database. The information could be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse `SQLCipher` or similar libraries to add encryption capabilities to SQLite. Alternatively, encrypt sensitive data using cryptographically secure algorithms before storing it in the database.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the database.\n\n\n```java\npublic void sqliteStorageUnsafe(Context ctx, String name, String password) {\n\t// BAD - sensitive information saved in cleartext.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\npublic void sqliteStorageSafe(Context ctx, String name, String password) {\n\t// GOOD - sensitive information encrypted with a custom method.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, encrypt(password)});\n}\n\npublic void sqlCipherStorageSafe(String name, String password, String databasePassword) {\n\t// GOOD - sensitive information saved using SQLCipher.\n\tnet.sqlcipher.database.SQLiteDatabase db = \n\t\tnet.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(\"test\", databasePassword, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* SQLCipher: [Android Application Integration](https://www.zetetic.net/sqlcipher/sqlcipher-for-android/)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Cleartext storage of sensitive information using a local database on Android\nSQLite is a lightweight database engine commonly used in Android devices to store data. By itself, SQLite does not offer any encryption mechanism by default and stores all data in cleartext, which introduces a risk if sensitive data like credentials, authentication tokens or personal identifiable information (PII) are directly stored in a SQLite database. The information could be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse `SQLCipher` or similar libraries to add encryption capabilities to SQLite. Alternatively, encrypt sensitive data using cryptographically secure algorithms before storing it in the database.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the database.\n\n\n```java\npublic void sqliteStorageUnsafe(Context ctx, String name, String password) {\n\t// BAD - sensitive information saved in cleartext.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\npublic void sqliteStorageSafe(Context ctx, String name, String password) {\n\t// GOOD - sensitive information encrypted with a custom method.\n\tSQLiteDatabase db = ctx.openOrCreateDatabase(\"test\", Context.MODE_PRIVATE, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, encrypt(password)});\n}\n\npublic void sqlCipherStorageSafe(String name, String password, String databasePassword) {\n\t// GOOD - sensitive information saved using SQLCipher.\n\tnet.sqlcipher.database.SQLiteDatabase db = \n\t\tnet.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(\"test\", databasePassword, null);\n\tdb.execSQL(\"INSERT INTO users VALUES (?, ?)\", new String[] {name, password});\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* SQLCipher: [Android Application Integration](https://www.zetetic.net/sqlcipher/sqlcipher-for-android/)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/cleartext-storage-database",
+                "name": "java/android/cleartext-storage-database",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidDatabase.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information using a local database on Android"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Cleartext storage of sensitive information in the Android filesystem allows access for users with root privileges or unexpected exposure from chained vulnerabilities."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information in the Android filesystem\nAndroid applications with the appropriate permissions can write files either to the device external storage or the application internal storage, depending on the application's needs. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nConsider using the `EncryptedFile` class to work with files containing sensitive data. Alternatively, use encryption algorithms to encrypt the sensitive data being stored.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext using a local file.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the filesystem.\n\n\n```java\npublic void fileSystemStorageUnsafe(String name, String password) {\n\t// BAD - sensitive data stored in cleartext\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + password);\n    fw.close();\n}\n\npublic void filesystemStorageEncryptedFileSafe(Context context, String name, String password) {\n\t// GOOD - the whole file is encrypted with androidx.security.crypto.EncryptedFile\n    File file = new File(\"some_file.txt\");\n    String masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC);\n    EncryptedFile encryptedFile = new EncryptedFile.Builder(\n        file,\n        context,\n        masterKeyAlias,\n        EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB\n    ).build();\n\tFileOutputStream encryptedOutputStream = encryptedFile.openFileOutput();\n\tencryptedOutputStream.write(name + \":\" + password);\n}\n\npublic void fileSystemStorageSafe(String name, String password) {\n\t// GOOD - sensitive data is encrypted using a custom method\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + encrypt(password));\n    fw.close();\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* Android Developers: [EncryptedFile](https://developer.android.com/reference/androidx/security/crypto/EncryptedFile)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Cleartext storage of sensitive information in the Android filesystem\nAndroid applications with the appropriate permissions can write files either to the device external storage or the application internal storage, depending on the application's needs. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nConsider using the `EncryptedFile` class to work with files containing sensitive data. Alternatively, use encryption algorithms to encrypt the sensitive data being stored.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext using a local file.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the filesystem.\n\n\n```java\npublic void fileSystemStorageUnsafe(String name, String password) {\n\t// BAD - sensitive data stored in cleartext\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + password);\n    fw.close();\n}\n\npublic void filesystemStorageEncryptedFileSafe(Context context, String name, String password) {\n\t// GOOD - the whole file is encrypted with androidx.security.crypto.EncryptedFile\n    File file = new File(\"some_file.txt\");\n    String masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC);\n    EncryptedFile encryptedFile = new EncryptedFile.Builder(\n        file,\n        context,\n        masterKeyAlias,\n        EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB\n    ).build();\n\tFileOutputStream encryptedOutputStream = encryptedFile.openFileOutput();\n\tencryptedOutputStream.write(name + \":\" + password);\n}\n\npublic void fileSystemStorageSafe(String name, String password) {\n\t// GOOD - sensitive data is encrypted using a custom method\n    FileWriter fw = new FileWriter(\"some_file.txt\");\n    fw.write(name + \":\" + encrypt(password));\n    fw.close();\n}\n\nprivate static String encrypt(String cleartext) {\n    // Use an encryption or strong hashing algorithm in the real world.\n    // The example below just returns a SHA-256 hash.\n    MessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n    byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n    String encoded = Base64.getEncoder().encodeToString(hash);\n    return encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* Android Developers: [EncryptedFile](https://developer.android.com/reference/androidx/security/crypto/EncryptedFile)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/cleartext-storage-filesystem",
+                "name": "java/android/cleartext-storage-filesystem",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageAndroidFilesystem.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information in the Android filesystem"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Cleartext Storage of Sensitive Information using SharedPreferences on Android allows access for users with root privileges or unexpected exposure from chained vulnerabilities."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information using `SharedPreferences` on Android\n`SharedPreferences` is an Android API that stores application preferences using simple sets of data values. It allows you to easily save, alter, and retrieve the values stored in a user's profile. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse the `EncryptedSharedPreferences` API or other encryption algorithms for storing sensitive information.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the device.\n\n\n```java\npublic void testSetSharedPrefs(Context context, String name, String password)\n{\n\t{\n\t\t// BAD - sensitive information saved in cleartext.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - save sensitive information encrypted with a custom method.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", encrypt(name));\n\t\teditor.putString(\"password\", encrypt(password));\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - sensitive information saved using the built-in `EncryptedSharedPreferences` class in androidx.\n\t\tMasterKey masterKey = new MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS)\n\t\t\t.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)\n\t\t\t.build();\n\n\t\tSharedPreferences sharedPreferences = EncryptedSharedPreferences.create(\n\t\t\tcontext,\n\t\t\t\"secret_shared_prefs\",\n\t\t\tmasterKey,\n\t\t\tEncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,\n\t\t\tEncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM);\n\n\t\tSharedPreferences.Editor editor = sharedPreferences.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n}\n\nprivate static String encrypt(String cleartext) throws Exception {\n\t// Use an encryption or hashing algorithm in real world. The demo below just returns its\n\t// hash.\n\tMessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n\tbyte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n\tString encoded = Base64.getEncoder().encodeToString(hash);\n\treturn encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* ProAndroidDev: [Encrypted Preferences in Android](https://proandroiddev.com/encrypted-preferences-in-android-af57a89af7c8)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n",
+                  "text": "# Cleartext storage of sensitive information using `SharedPreferences` on Android\n`SharedPreferences` is an Android API that stores application preferences using simple sets of data values. It allows you to easily save, alter, and retrieve the values stored in a user's profile. However, sensitive information should not be saved in cleartext. Otherwise it can be accessed by any process or user in rooted devices, or can be disclosed through chained vulnerabilities, like unexpected access to the private storage through exposed components.\n\n\n## Recommendation\nUse the `EncryptedSharedPreferences` API or other encryption algorithms for storing sensitive information.\n\n\n## Example\nIn the first example, sensitive user information is stored in cleartext.\n\nIn the second and third examples, the code encrypts sensitive information before saving it to the device.\n\n\n```java\npublic void testSetSharedPrefs(Context context, String name, String password)\n{\n\t{\n\t\t// BAD - sensitive information saved in cleartext.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - save sensitive information encrypted with a custom method.\n\t\tSharedPreferences sharedPrefs = context.getSharedPreferences(\"user_prefs\", Context.MODE_PRIVATE);\n\t\tEditor editor = sharedPrefs.edit();\n\t\teditor.putString(\"name\", encrypt(name));\n\t\teditor.putString(\"password\", encrypt(password));\n\t\teditor.commit();\n\t}\n\n\t{\n\t\t// GOOD - sensitive information saved using the built-in `EncryptedSharedPreferences` class in androidx.\n\t\tMasterKey masterKey = new MasterKey.Builder(context, MasterKey.DEFAULT_MASTER_KEY_ALIAS)\n\t\t\t.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)\n\t\t\t.build();\n\n\t\tSharedPreferences sharedPreferences = EncryptedSharedPreferences.create(\n\t\t\tcontext,\n\t\t\t\"secret_shared_prefs\",\n\t\t\tmasterKey,\n\t\t\tEncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,\n\t\t\tEncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM);\n\n\t\tSharedPreferences.Editor editor = sharedPreferences.edit();\n\t\teditor.putString(\"name\", name);\n\t\teditor.putString(\"password\", password);\n\t\teditor.commit();\n\t}\n}\n\nprivate static String encrypt(String cleartext) throws Exception {\n\t// Use an encryption or hashing algorithm in real world. The demo below just returns its\n\t// hash.\n\tMessageDigest digest = MessageDigest.getInstance(\"SHA-256\");\n\tbyte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8));\n\tString encoded = Base64.getEncoder().encodeToString(hash);\n\treturn encoded;\n}\n\n```\n\n## References\n* Android Developers: [Work with data more securely](https://developer.android.com/topic/security/data)\n* ProAndroidDev: [Encrypted Preferences in Android](https://proandroiddev.com/encrypted-preferences-in-android-af57a89af7c8)\n* Common Weakness Enumeration: [CWE-312](https://cwe.mitre.org/data/definitions/312.html).\n"
+                },
+                "id": "java/android/cleartext-storage-shared-prefs",
+                "name": "java/android/cleartext-storage-shared-prefs",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageSharedPrefs.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-312",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information using `SharedPreferences` on Android"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An enabled debugger can allow for entry points in the application or reveal sensitive information."
+                },
+                "help": {
+                  "markdown": "# Android debuggable attribute enabled\nThe Android manifest file defines configuration settings for Android applications. In this file, the `android:debuggable` attribute of the `application` element can be used to define whether or not the application can be debugged. When set to `true`, this attribute will allow the application to be debugged even when running on a device in user mode.\n\nWhen a debugger is enabled, it could allow for entry points in the application or reveal sensitive information. As a result, `android:debuggable` should only be enabled during development and should be disabled in production builds.\n\n\n## Recommendation\nIn Android applications, either set the `android:debuggable` attribute to `false`, or do not include it in the manifest. The default value, when not included, is `false`.\n\n\n## Example\nIn the example below, the `android:debuggable` attribute is set to `true`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nThe corrected version sets the `android:debuggable` attribute to `false`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The android:debuggable attribute](https://developer.android.com/guide/topics/manifest/application-element#debug).\n* Android Developers: [Enable debugging](https://developer.android.com/studio/debug#enable-debug).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n",
+                  "text": "# Android debuggable attribute enabled\nThe Android manifest file defines configuration settings for Android applications. In this file, the `android:debuggable` attribute of the `application` element can be used to define whether or not the application can be debugged. When set to `true`, this attribute will allow the application to be debugged even when running on a device in user mode.\n\nWhen a debugger is enabled, it could allow for entry points in the application or reveal sensitive information. As a result, `android:debuggable` should only be enabled during development and should be disabled in production builds.\n\n\n## Recommendation\nIn Android applications, either set the `android:debuggable` attribute to `false`, or do not include it in the manifest. The default value, when not included, is `false`.\n\n\n## Example\nIn the example below, the `android:debuggable` attribute is set to `true`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\nThe corrected version sets the `android:debuggable` attribute to `false`.\n\n\n```xml\n\n    \n    \n        \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The android:debuggable attribute](https://developer.android.com/guide/topics/manifest/application-element#debug).\n* Android Developers: [Enable debugging](https://developer.android.com/studio/debug#enable-debug).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n"
+                },
+                "id": "java/android/debuggable-attribute-enabled",
+                "name": "java/android/debuggable-attribute-enabled",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-489/DebuggableAttributeEnabled.ql",
+                  "security-severity": "7.2",
+                  "tags": [
+                    "external/cwe/cwe-489",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android debuggable attribute enabled"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Instantiating an Android fragment from a user-provided value may allow a malicious application to bypass access controls, exposing the application to unintended effects."
+                },
+                "help": {
+                  "markdown": "# Android fragment injection\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n",
+                  "text": "# Android fragment injection\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n"
+                },
+                "id": "java/android/fragment-injection",
+                "name": "java/android/fragment-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-470/FragmentInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-470",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android fragment injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "An insecure implementation of the 'isValidFragment' method of the 'PreferenceActivity' class may allow a malicious application to bypass access controls, exposing the application to unintended effects."
+                },
+                "help": {
+                  "markdown": "# Android fragment injection in PreferenceActivity\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n",
+                  "text": "# Android fragment injection in PreferenceActivity\nWhen fragments are instantiated with externally provided names, this exposes any exported activity that dynamically creates and hosts the fragment to fragment injection. A malicious application could provide the name of an arbitrary fragment, even one not designed to be externally accessible, and inject it into the activity. This can bypass access controls and expose the application to unintended effects.\n\nFragments are reusable parts of an Android application's user interface. Even though a fragment controls its own lifecycle and layout, and handles its input events, it cannot exist on its own: it must be hosted either by an activity or another fragment. This means that, normally, a fragment will be accessible by third-party applications (that is, exported) only if its hosting activity is itself exported.\n\n\n## Recommendation\nIn general, do not instantiate classes (including fragments) with user-provided names unless the name has been properly validated. Also, if an exported activity is extending the `PreferenceActivity` class, make sure that the `isValidFragment` method is overriden and only returns `true` when the provided `fragmentName` points to an intended fragment.\n\n\n## Example\nThe following example shows two cases: in the first one, untrusted data is used to instantiate and add a fragment to an activity, while in the second one, a fragment is safely added with a static name.\n\n\n```java\npublic class MyActivity extends FragmentActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstance) {\n        try {\n            super.onCreate(savedInstance);\n            // BAD: Fragment instantiated from user input without validation\n            {\n                String fName = getIntent().getStringExtra(\"fragmentName\");\n                getFragmentManager().beginTransaction().replace(com.android.internal.R.id.prefs,\n                        Fragment.instantiate(this, fName, null)).commit();\n            }\n            // GOOD: Fragment instantiated statically\n            {\n                getFragmentManager().beginTransaction()\n                        .replace(com.android.internal.R.id.prefs, new MyFragment()).commit();\n            }\n        } catch (Exception e) {\n        }\n    }\n\n}\n\n```\nThe next example shows two activities that extend `PreferenceActivity`. The first activity overrides `isValidFragment`, but it wrongly returns `true` unconditionally. The second activity correctly overrides `isValidFragment` so that it only returns `true` when `fragmentName` is a trusted fragment name.\n\n\n```java\nclass UnsafeActivity extends PreferenceActivity {\n\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // BAD: any Fragment name can be provided.\n        return true;\n    }\n}\n\n\nclass SafeActivity extends PreferenceActivity {\n    @Override\n    protected boolean isValidFragment(String fragmentName) {\n        // Good: only trusted Fragment names are allowed.\n        return SafeFragment1.class.getName().equals(fragmentName)\n                || SafeFragment2.class.getName().equals(fragmentName)\n                || SafeFragment3.class.getName().equals(fragmentName);\n    }\n\n}\n\n\n```\n\n## References\n* Google Help: [How to fix Fragment Injection vulnerability](https://support.google.com/faqs/answer/7188427?hl=en).\n* IBM Security Systems: [Android collapses into Fragments](https://securityintelligence.com/wp-content/uploads/2013/12/android-collapses-into-fragments.pdf).\n* Android Developers: [Fragments](https://developer.android.com/guide/fragments)\n* Common Weakness Enumeration: [CWE-470](https://cwe.mitre.org/data/definitions/470.html).\n"
+                },
+                "id": "java/android/fragment-injection-preference-activity",
+                "name": "java/android/fragment-injection-preference-activity",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-470/FragmentInjectionInPreferenceActivity.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-470",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android fragment injection in PreferenceActivity"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Sending an implicit and mutable 'PendingIntent' to an unspecified third party component may provide an attacker with access to internal components of the application or cause other unintended effects."
+                },
+                "help": {
+                  "markdown": "# Use of implicit PendingIntents\nA `PendingIntent` is used to wrap an `Intent` that will be supplied and executed by another application. When the `Intent` is executed, it behaves as if it were run directly by the supplying application, using the privileges of that application.\n\nIf a `PendingIntent` is configured to be mutable, the fields of its internal `Intent` can be changed by the receiving application if they were not previously set. This means that a mutable `PendingIntent` that has not defined a destination component (that is, an implicit `PendingIntent`) can be altered to execute an arbitrary action with the privileges of the application that created it.\n\nA malicious application can access an implicit `PendingIntent` as follows:\n\n* It is wrapped and sent as an extra of another implicit `Intent`.\n* It is sent as the action of a `Slide`.\n* It is sent as the action of a `Notification`.\n\n\nOn gaining access, the attacker can modify the underlying `Intent` and execute an arbitrary action with elevated privileges. This could give the malicious application access to private components of the victim application, or the ability to perform actions without having the necessary permissions.\n\n\n## Recommendation\nAvoid creating implicit `PendingIntent`s. This means that the underlying `Intent` should always have an explicit destination component.\n\nWhen you add the `PendingIntent` as an extra of another `Intent`, make sure that this second `Intent` also has an explicit destination component, so that it is not delivered to untrusted applications.\n\nCreate the `PendingIntent` using the flag `FLAG_IMMUTABLE` whenever possible, to prevent the destination component from modifying empty fields of the underlying `Intent`.\n\n\n## Example\nIn the following examples, a `PendingIntent` is created and wrapped as an extra of another `Intent`.\n\nIn the first example, both the `PendingIntent` and the `Intent` it is wrapped in are implicit, making them vulnerable to attack.\n\nIn the second example, the issue is avoided by adding explicit destination components to the `PendingIntent` and the wrapping `Intent`.\n\nThe third example uses the `FLAG_IMMUTABLE` flag to prevent the underlying `Intent` from being modified by the destination component.\n\n\n```java\nimport android.app.Activity;\nimport android.app.PendingIntent;\nimport android.content.Intent;\nimport android.os.Bundle;\n\npublic class ImplicitPendingIntents extends Activity {\n\n\tpublic void onCreate(Bundle savedInstance) {\n\t\t{\n\t\t\t// BAD: an implicit Intent is used to create a PendingIntent.\n\t\t\t// The PendingIntent is then added to another implicit Intent\n\t\t\t// and started.\n\t\t\tIntent baseIntent = new Intent();\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent(\"SOME_ACTION\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tsendBroadcast(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: both the PendingIntent and the wrapping Intent are explicit.\n\t\t\tIntent safeIntent = new Intent(this, AnotherActivity.class);\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, safeIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: The PendingIntent is created with FLAG_IMMUTABLE.\n\t\t\tIntent baseIntent = new Intent(\"SOME_ACTION\");\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_IMMUTABLE);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* Google Help: [ Remediation for Implicit PendingIntent Vulnerability ](https://support.google.com/faqs/answer/10437428?hl=en)\n* University of Potsdam: [ PIAnalyzer: A precise approach for PendingIntent vulnerability analysis ](https://www.cs.uni-potsdam.de/se/papers/esorics18.pdf)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n",
+                  "text": "# Use of implicit PendingIntents\nA `PendingIntent` is used to wrap an `Intent` that will be supplied and executed by another application. When the `Intent` is executed, it behaves as if it were run directly by the supplying application, using the privileges of that application.\n\nIf a `PendingIntent` is configured to be mutable, the fields of its internal `Intent` can be changed by the receiving application if they were not previously set. This means that a mutable `PendingIntent` that has not defined a destination component (that is, an implicit `PendingIntent`) can be altered to execute an arbitrary action with the privileges of the application that created it.\n\nA malicious application can access an implicit `PendingIntent` as follows:\n\n* It is wrapped and sent as an extra of another implicit `Intent`.\n* It is sent as the action of a `Slide`.\n* It is sent as the action of a `Notification`.\n\n\nOn gaining access, the attacker can modify the underlying `Intent` and execute an arbitrary action with elevated privileges. This could give the malicious application access to private components of the victim application, or the ability to perform actions without having the necessary permissions.\n\n\n## Recommendation\nAvoid creating implicit `PendingIntent`s. This means that the underlying `Intent` should always have an explicit destination component.\n\nWhen you add the `PendingIntent` as an extra of another `Intent`, make sure that this second `Intent` also has an explicit destination component, so that it is not delivered to untrusted applications.\n\nCreate the `PendingIntent` using the flag `FLAG_IMMUTABLE` whenever possible, to prevent the destination component from modifying empty fields of the underlying `Intent`.\n\n\n## Example\nIn the following examples, a `PendingIntent` is created and wrapped as an extra of another `Intent`.\n\nIn the first example, both the `PendingIntent` and the `Intent` it is wrapped in are implicit, making them vulnerable to attack.\n\nIn the second example, the issue is avoided by adding explicit destination components to the `PendingIntent` and the wrapping `Intent`.\n\nThe third example uses the `FLAG_IMMUTABLE` flag to prevent the underlying `Intent` from being modified by the destination component.\n\n\n```java\nimport android.app.Activity;\nimport android.app.PendingIntent;\nimport android.content.Intent;\nimport android.os.Bundle;\n\npublic class ImplicitPendingIntents extends Activity {\n\n\tpublic void onCreate(Bundle savedInstance) {\n\t\t{\n\t\t\t// BAD: an implicit Intent is used to create a PendingIntent.\n\t\t\t// The PendingIntent is then added to another implicit Intent\n\t\t\t// and started.\n\t\t\tIntent baseIntent = new Intent();\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent(\"SOME_ACTION\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tsendBroadcast(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: both the PendingIntent and the wrapping Intent are explicit.\n\t\t\tIntent safeIntent = new Intent(this, AnotherActivity.class);\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, safeIntent, PendingIntent.FLAG_ONE_SHOT);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\n\t\t{\n\t\t\t// GOOD: The PendingIntent is created with FLAG_IMMUTABLE.\n\t\t\tIntent baseIntent = new Intent(\"SOME_ACTION\");\n\t\t\tPendingIntent pi =\n\t\t\t\t\tPendingIntent.getActivity(this, 0, baseIntent, PendingIntent.FLAG_IMMUTABLE);\n\t\t\tIntent fwdIntent = new Intent();\n\t\t\tfwdIntent.setClassName(\"destination.package\", \"DestinationClass\");\n\t\t\tfwdIntent.putExtra(\"fwdIntent\", pi);\n\t\t\tstartActivity(fwdIntent);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* Google Help: [ Remediation for Implicit PendingIntent Vulnerability ](https://support.google.com/faqs/answer/10437428?hl=en)\n* University of Potsdam: [ PIAnalyzer: A precise approach for PendingIntent vulnerability analysis ](https://www.cs.uni-potsdam.de/se/papers/esorics18.pdf)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n"
+                },
+                "id": "java/android/implicit-pendingintents",
+                "name": "java/android/implicit-pendingintents",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-927/ImplicitPendingIntents.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-927",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of implicit PendingIntents"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Android components with an '' and no 'android:exported' attribute are implicitly exported, which can allow for improper access to the components themselves and to their data."
+                },
+                "help": {
+                  "markdown": "# Implicitly exported Android component\nThe Android manifest file defines configuration settings for Android applications. In this file, components can be declared with intent filters which specify what the components can do and what types of intents the components can respond to. If the `android:exported` attribute is omitted from the component when an intent filter is included, then the component will be implicitly exported.\n\nAn implicitly exported component could allow for improper access to the component and its data.\n\n\n## Recommendation\nExplicitly set the `android:exported` attribute for every component or use permissions to limit access to the component.\n\n\n## Example\nIn the example below, the `android:exported` attribute is omitted when an intent filter is used.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            \n                \n            \n        \n    \n\n\n```\nA corrected version sets the `android:exported` attribute to `false`.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            android:exported=\"false\"\n            \n                \n            \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The <intent-filter> element](https://developer.android.com/guide/topics/manifest/intent-filter-element).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Android Developers: [The android:permission attribute](https://developer.android.com/guide/topics/manifest/activity-element#prmsn).\n* Android Developers: [Safer component exporting](https://developer.android.com/about/versions/12/behavior-changes-12#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n",
+                  "text": "# Implicitly exported Android component\nThe Android manifest file defines configuration settings for Android applications. In this file, components can be declared with intent filters which specify what the components can do and what types of intents the components can respond to. If the `android:exported` attribute is omitted from the component when an intent filter is included, then the component will be implicitly exported.\n\nAn implicitly exported component could allow for improper access to the component and its data.\n\n\n## Recommendation\nExplicitly set the `android:exported` attribute for every component or use permissions to limit access to the component.\n\n\n## Example\nIn the example below, the `android:exported` attribute is omitted when an intent filter is used.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            \n                \n            \n        \n    \n\n\n```\nA corrected version sets the `android:exported` attribute to `false`.\n\n\n```xml\n\n    \n        \n            android:name=\".Activity\">\n            android:exported=\"false\"\n            \n                \n            \n        \n    \n\n\n```\n\n## References\n* Android Developers: [App Manifest Overview](https://developer.android.com/guide/topics/manifest/manifest-intro).\n* Android Developers: [The <intent-filter> element](https://developer.android.com/guide/topics/manifest/intent-filter-element).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Android Developers: [The android:permission attribute](https://developer.android.com/guide/topics/manifest/activity-element#prmsn).\n* Android Developers: [Safer component exporting](https://developer.android.com/about/versions/12/behavior-changes-12#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n"
+                },
+                "id": "java/android/implicitly-exported-component",
+                "name": "java/android/implicitly-exported-component",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-926/ImplicitlyExportedAndroidComponent.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-926",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Implicitly exported Android component"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Android content providers which do not configure both read and write permissions can allow permission bypass."
+                },
+                "help": {
+                  "markdown": "# Missing read or write permission in a content provider\nThe Android manifest file specifies the content providers for the application using `provider` elements. The `provider` element specifies the explicit permissions an application requires in order to access a resource using that provider. You specify the permissions using the `android:readPermission`, `android:writePermission`, or `android:permission` attributes. If you do not specify the permission required to perform an operation, the application will implicitly have access to perform that operation. For example, if you specify only `android:readPermission`, the application must have explicit permission to read data, but requires no permission to write data.\n\n\n## Recommendation\nTo prevent permission bypass, you should create `provider` elements that either specify both the `android:readPermission` and `android:writePermission` attributes, or specify the `android:permission` attribute.\n\n\n## Example\nIn the following two (bad) examples, the provider is configured with only read or write permissions. This allows a malicious application to bypass the permission check by requesting access to the unrestricted operation.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\nIn the following (good) examples, the provider is configured with full permissions, protecting it from a permissions bypass.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n## References\n* Android Documentation: [Provider element](https://developer.android.com/guide/topics/manifest/provider-element)\n* CVE-2021-41166: [Insufficient permission control in Nextcloud Android app](https://nvd.nist.gov/vuln/detail/CVE-2021-41166)\n* GitHub Security Lab Research: [Insufficient permission control in Nextcloud Android app](https://securitylab.github.com/advisories/GHSL-2021-1007-Nextcloud_Android_app/#issue-2-permission-bypass-in-disklruimagecachefileprovider-ghsl-2021-1008)\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n",
+                  "text": "# Missing read or write permission in a content provider\nThe Android manifest file specifies the content providers for the application using `provider` elements. The `provider` element specifies the explicit permissions an application requires in order to access a resource using that provider. You specify the permissions using the `android:readPermission`, `android:writePermission`, or `android:permission` attributes. If you do not specify the permission required to perform an operation, the application will implicitly have access to perform that operation. For example, if you specify only `android:readPermission`, the application must have explicit permission to read data, but requires no permission to write data.\n\n\n## Recommendation\nTo prevent permission bypass, you should create `provider` elements that either specify both the `android:readPermission` and `android:writePermission` attributes, or specify the `android:permission` attribute.\n\n\n## Example\nIn the following two (bad) examples, the provider is configured with only read or write permissions. This allows a malicious application to bypass the permission check by requesting access to the unrestricted operation.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\nIn the following (good) examples, the provider is configured with full permissions, protecting it from a permissions bypass.\n\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n```xml\n\n    \n      \n      \n      \n    \n\n\n```\n\n## References\n* Android Documentation: [Provider element](https://developer.android.com/guide/topics/manifest/provider-element)\n* CVE-2021-41166: [Insufficient permission control in Nextcloud Android app](https://nvd.nist.gov/vuln/detail/CVE-2021-41166)\n* GitHub Security Lab Research: [Insufficient permission control in Nextcloud Android app](https://securitylab.github.com/advisories/GHSL-2021-1007-Nextcloud_Android_app/#issue-2-permission-bypass-in-disklruimagecachefileprovider-ghsl-2021-1008)\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n"
+                },
+                "id": "java/android/incomplete-provider-permissions",
+                "name": "java/android/incomplete-provider-permissions",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-926/ContentProviderIncompletePermissions.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-926",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Missing read or write permission in a content provider"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Local authentication that does not make use of a `CryptoObject` can be bypassed."
+                },
+                "help": {
+                  "markdown": "# Insecure local authentication\nBiometric local authentication such as fingerprint recognition can be used to protect sensitive data or actions within an application. However, if this authentication does not use a `KeyStore`-backed key, it can be bypassed by a privileged malicious application, or by an attacker with physical access using application hooking tools such as Frida.\n\n\n## Recommendation\nGenerate a secure key in the Android `KeyStore`. Ensure that the `onAuthenticationSuccess` callback for a biometric prompt uses it in a way that is required for the sensitive parts of the application to function, such as by using it to decrypt sensitive data or credentials.\n\n\n## Example\nIn the following (bad) case, no `CryptoObject` is required for the biometric prompt to grant access, so it can be bypassed.\n\n\n```java\nbiometricPrompt.authenticate(\n    cancellationSignal,\n    executor,\n    new BiometricPrompt.AuthenticationCallback {\n        @Override\n        // BAD: This authentication callback does not make use of a `CryptoObject` from the `result`.\n        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n            grantAccess()\n        }\n    }\n)\n```\nIn the following (good) case, a secret key is generated in the Android `KeyStore`. The application requires this secret key for access, using it to decrypt data.\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\n\nprivate SecretKey getSecretKey() {\n    KeyStore keyStore = KeyStore.getInstance(\"AndroidKeyStore\");\n    keyStore.load(null);\n    return ((SecretKey)keyStore.getKey(\"MySecretKey\", null));\n}\n\nprivate Cipher getCipher() {\n    return Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + \"/\"\n            + KeyProperties.BLOCK_MODE_CBC + \"/\"\n            + KeyProperties.ENCRYPTION_PADDING_PKCS7);\n}\n\npublic prompt(byte[] encryptedData) {\n    Cipher cipher = getCipher();\n    SecretKey secretKey = getSecretKey();\n    cipher.init(Cipher.DECRYPT_MODE, secretKey);\n\n    biometricPrompt.authenticate(\n        new BiometricPrompt.CryptoObject(cipher),\n        cancellationSignal,\n        executor,\n        new BiometricPrompt.AuthenticationCallback() {\n            @Override\n            // GOOD: This authentication callback uses the result to decrypt some data.\n            public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n                Cipher cipher = result.getCryptoObject().getCipher();\n                byte[] decryptedData = cipher.doFinal(encryptedData);\n                grantAccessWithData(decryptedData);\n            }\n        }\n    );\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Local Authentication](https://mas.owasp.org/MASTG/Android/0x05f-Testing-Local-Authentication/)\n* OWASP Mobile Application Security: [Testing Biometric Authentication](https://mas.owasp.org/MASTG/tests/android/MASVS-AUTH/MASTG-TEST-0018/)\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication)\n* Android Developers: [Biometric Authentication](https://developer.android.com/training/sign-in/biometric-auth)\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n",
+                  "text": "# Insecure local authentication\nBiometric local authentication such as fingerprint recognition can be used to protect sensitive data or actions within an application. However, if this authentication does not use a `KeyStore`-backed key, it can be bypassed by a privileged malicious application, or by an attacker with physical access using application hooking tools such as Frida.\n\n\n## Recommendation\nGenerate a secure key in the Android `KeyStore`. Ensure that the `onAuthenticationSuccess` callback for a biometric prompt uses it in a way that is required for the sensitive parts of the application to function, such as by using it to decrypt sensitive data or credentials.\n\n\n## Example\nIn the following (bad) case, no `CryptoObject` is required for the biometric prompt to grant access, so it can be bypassed.\n\n\n```java\nbiometricPrompt.authenticate(\n    cancellationSignal,\n    executor,\n    new BiometricPrompt.AuthenticationCallback {\n        @Override\n        // BAD: This authentication callback does not make use of a `CryptoObject` from the `result`.\n        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n            grantAccess()\n        }\n    }\n)\n```\nIn the following (good) case, a secret key is generated in the Android `KeyStore`. The application requires this secret key for access, using it to decrypt data.\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\n\nprivate SecretKey getSecretKey() {\n    KeyStore keyStore = KeyStore.getInstance(\"AndroidKeyStore\");\n    keyStore.load(null);\n    return ((SecretKey)keyStore.getKey(\"MySecretKey\", null));\n}\n\nprivate Cipher getCipher() {\n    return Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + \"/\"\n            + KeyProperties.BLOCK_MODE_CBC + \"/\"\n            + KeyProperties.ENCRYPTION_PADDING_PKCS7);\n}\n\npublic prompt(byte[] encryptedData) {\n    Cipher cipher = getCipher();\n    SecretKey secretKey = getSecretKey();\n    cipher.init(Cipher.DECRYPT_MODE, secretKey);\n\n    biometricPrompt.authenticate(\n        new BiometricPrompt.CryptoObject(cipher),\n        cancellationSignal,\n        executor,\n        new BiometricPrompt.AuthenticationCallback() {\n            @Override\n            // GOOD: This authentication callback uses the result to decrypt some data.\n            public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {\n                Cipher cipher = result.getCryptoObject().getCipher();\n                byte[] decryptedData = cipher.doFinal(encryptedData);\n                grantAccessWithData(decryptedData);\n            }\n        }\n    );\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Local Authentication](https://mas.owasp.org/MASTG/Android/0x05f-Testing-Local-Authentication/)\n* OWASP Mobile Application Security: [Testing Biometric Authentication](https://mas.owasp.org/MASTG/tests/android/MASVS-AUTH/MASTG-TEST-0018/)\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication)\n* Android Developers: [Biometric Authentication](https://developer.android.com/training/sign-in/biometric-auth)\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n"
+                },
+                "id": "java/android/insecure-local-authentication",
+                "name": "java/android/insecure-local-authentication",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-287/AndroidInsecureLocalAuthentication.ql",
+                  "security-severity": "4.4",
+                  "tags": [
+                    "external/cwe/cwe-287",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure local authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Generation of keys with insecure parameters for local biometric authentication can allow attackers with physical access to bypass authentication checks."
+                },
+                "help": {
+                  "markdown": "# Insecurely generated keys for local authentication\nBiometric authentication, such as fingerprint recognition, can be used alongside cryptographic keys stored in the Android `KeyStore` to protect sensitive parts of the application. However, when a key generated for this purpose has certain parameters set insecurely, an attacker with physical access can bypass the authentication check using application hooking tools such as Frida.\n\n\n## Recommendation\nWhen generating a key for use with biometric authentication, ensure that the following parameters of `KeyGenParameterSpec.Builder` are set:\n\n* `setUserAuthenticationRequired` should be set to `true`; otherwise, the key can be used without user authentication.\n* `setInvalidatedByBiometricEnrollment` should be set to `true` (the default); otherwise, an attacker can use the key by enrolling additional biometrics on the device.\n* `setUserAuthenticationValidityDurationSeconds`, if used, should be set to `-1`; otherwise, non-biometric (less secure) credentials can be used to access the key. We recommend using `setUserAuthenticationParameters` instead to explicitly set both the timeout and the types of credentials that may be used.\n\n## Example\nThe following example demonstrates a key that is configured with secure paramaters:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // GOOD: Secure parameters are used to generate a key for biometric authentication.\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .setUserAuthenticationParameters(0, KeyProperties.AUTH_BIOMETRIC_STRONG)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\nIn each of the following cases, a parameter is set insecurely:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // BAD: User authentication is not required to use this key.\n        .setUserAuthenticationRequired(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        // BAD: An attacker can access this key by enrolling additional biometrics.\n        .setInvalidatedByBiometricEnrollment(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        // BAD: This key can be accessed using non-biometric credentials. \n        .setUserAuthenticationValidityDurationSeconds(30)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\n\n## References\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication).\n* Android Developers: [KeyGenParameterSpec.Builder](https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder).\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n",
+                  "text": "# Insecurely generated keys for local authentication\nBiometric authentication, such as fingerprint recognition, can be used alongside cryptographic keys stored in the Android `KeyStore` to protect sensitive parts of the application. However, when a key generated for this purpose has certain parameters set insecurely, an attacker with physical access can bypass the authentication check using application hooking tools such as Frida.\n\n\n## Recommendation\nWhen generating a key for use with biometric authentication, ensure that the following parameters of `KeyGenParameterSpec.Builder` are set:\n\n* `setUserAuthenticationRequired` should be set to `true`; otherwise, the key can be used without user authentication.\n* `setInvalidatedByBiometricEnrollment` should be set to `true` (the default); otherwise, an attacker can use the key by enrolling additional biometrics on the device.\n* `setUserAuthenticationValidityDurationSeconds`, if used, should be set to `-1`; otherwise, non-biometric (less secure) credentials can be used to access the key. We recommend using `setUserAuthenticationParameters` instead to explicitly set both the timeout and the types of credentials that may be used.\n\n## Example\nThe following example demonstrates a key that is configured with secure paramaters:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // GOOD: Secure parameters are used to generate a key for biometric authentication.\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        .setUserAuthenticationParameters(0, KeyProperties.AUTH_BIOMETRIC_STRONG)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\nIn each of the following cases, a parameter is set insecurely:\n\n\n```java\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        // BAD: User authentication is not required to use this key.\n        .setUserAuthenticationRequired(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        // BAD: An attacker can access this key by enrolling additional biometrics.\n        .setInvalidatedByBiometricEnrollment(false)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n\nprivate void generateSecretKey() {\n    KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(\n        \"MySecretKey\",\n        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)\n        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)\n        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)\n        .setUserAuthenticationRequired(true)\n        .setInvalidatedByBiometricEnrollment(true)\n        // BAD: This key can be accessed using non-biometric credentials. \n        .setUserAuthenticationValidityDurationSeconds(30)\n        .build();\n    KeyGenerator keyGenerator = KeyGenerator.getInstance(\n            KeyProperties.KEY_ALGORITHM_AES, \"AndroidKeyStore\");\n    keyGenerator.init(keyGenParameterSpec);\n    keyGenerator.generateKey();\n}\n```\n\n## References\n* WithSecure: [How Secure is your Android Keystore Authentication?](https://labs.withsecure.com/publications/how-secure-is-your-android-keystore-authentication).\n* Android Developers: [KeyGenParameterSpec.Builder](https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder).\n* Common Weakness Enumeration: [CWE-287](https://cwe.mitre.org/data/definitions/287.html).\n"
+                },
+                "id": "java/android/insecure-local-key-gen",
+                "name": "java/android/insecure-local-key-gen",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-287/AndroidInsecureKeys.ql",
+                  "security-severity": "4.4",
+                  "tags": [
+                    "external/cwe/cwe-287",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecurely generated keys for local authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Starting Android components with user-provided Intents can provide access to internal components of the application, increasing the attack surface and potentially causing unintended effects."
+                },
+                "help": {
+                  "markdown": "# Android Intent redirection\nAn exported Android component that obtains a user-provided Intent and uses it to launch another component can be exploited to obtain access to private, unexported components of the same app or to launch other apps' components on behalf of the victim app.\n\n\n## Recommendation\nDo not export components that start other components from a user-provided Intent. They can be made private by setting the `android:exported` property to `false` in the app's Android Manifest.\n\nIf this is not possible, restrict either which apps can send Intents to the affected component, or which components can be started from it.\n\n\n## Example\nThe following snippet contains three examples. In the first example, an arbitrary component can be started from the externally provided `forward_intent` Intent. In the second example, the destination component of the Intent is first checked to make sure it is safe. In the third example, the component that created the Intent is first checked to make sure it comes from a trusted origin.\n\n\n```java\n// BAD: A user-provided Intent is used to launch an arbitrary component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nstartActivity(forwardIntent);\n\n// GOOD: The destination component is checked before launching it\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName destinationComponent = forwardIntent.resolveActivity(getPackageManager());\nif (destinationComponent.getPackageName().equals(\"safe.package\") && \n    destinationComponent.getClassName().equals(\"SafeClass\")) {\n    startActivity(forwardIntent);\n}\n\n// GOOD: The component that sent the Intent is checked before launching the destination component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName originComponent = getCallingActivity();\nif (originComponent.getPackageName().equals(\"trusted.package\") && originComponent.getClassName().equals(\"TrustedClass\")) {\n    startActivity(forwardIntent);\n}\n\n```\n\n## References\n* Google: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* OWASP Mobile Security Testing Guide: [Intents](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05a-platform-overview#intents).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n* Common Weakness Enumeration: [CWE-940](https://cwe.mitre.org/data/definitions/940.html).\n",
+                  "text": "# Android Intent redirection\nAn exported Android component that obtains a user-provided Intent and uses it to launch another component can be exploited to obtain access to private, unexported components of the same app or to launch other apps' components on behalf of the victim app.\n\n\n## Recommendation\nDo not export components that start other components from a user-provided Intent. They can be made private by setting the `android:exported` property to `false` in the app's Android Manifest.\n\nIf this is not possible, restrict either which apps can send Intents to the affected component, or which components can be started from it.\n\n\n## Example\nThe following snippet contains three examples. In the first example, an arbitrary component can be started from the externally provided `forward_intent` Intent. In the second example, the destination component of the Intent is first checked to make sure it is safe. In the third example, the component that created the Intent is first checked to make sure it comes from a trusted origin.\n\n\n```java\n// BAD: A user-provided Intent is used to launch an arbitrary component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nstartActivity(forwardIntent);\n\n// GOOD: The destination component is checked before launching it\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName destinationComponent = forwardIntent.resolveActivity(getPackageManager());\nif (destinationComponent.getPackageName().equals(\"safe.package\") && \n    destinationComponent.getClassName().equals(\"SafeClass\")) {\n    startActivity(forwardIntent);\n}\n\n// GOOD: The component that sent the Intent is checked before launching the destination component\nIntent forwardIntent = (Intent) getIntent().getParcelableExtra(\"forward_intent\");\nComponentName originComponent = getCallingActivity();\nif (originComponent.getPackageName().equals(\"trusted.package\") && originComponent.getClassName().equals(\"TrustedClass\")) {\n    startActivity(forwardIntent);\n}\n\n```\n\n## References\n* Google: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* OWASP Mobile Security Testing Guide: [Intents](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05a-platform-overview#intents).\n* Android Developers: [The android:exported attribute](https://developer.android.com/guide/topics/manifest/activity-element#exported).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n* Common Weakness Enumeration: [CWE-940](https://cwe.mitre.org/data/definitions/940.html).\n"
+                },
+                "id": "java/android/intent-redirection",
+                "name": "java/android/intent-redirection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-940/AndroidIntentRedirection.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-926",
+                    "external/cwe/cwe-940",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android Intent redirection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Returning an externally provided Intent via 'setResult' may allow a malicious application to access arbitrary content providers of the vulnerable application."
+                },
+                "help": {
+                  "markdown": "# Intent URI permission manipulation\nWhen an Android component expects a result from an Activity, `startActivityForResult` can be used. The started Activity can then use `setResult` to return the appropriate data to the calling component.\n\nIf an Activity obtains the incoming, user-provided Intent and directly returns it via `setResult` without any checks, the application may be unintentionally giving arbitrary access to its content providers, even if they are not exported, as long as they are configured with the attribute `android:grantUriPermissions=\"true\"`. This happens because the attacker adds the appropriate URI permission flags to the provided Intent, which take effect once the Intent is reflected back.\n\n\n## Recommendation\nAvoid returning user-provided or untrusted Intents via `setResult`. Use a new Intent instead.\n\nIf it is required to use the received Intent, make sure that it does not contain URI permission flags, either by checking them with `Intent.getFlags` or removing them with `Intent.removeFlags`.\n\n\n## Example\nThe following sample contains three examples. In the first example, a user-provided Intent is obtained and directly returned back with `setResult`, which is dangerous. In the second example, a new Intent is created to safely return the desired data. The third example shows how the obtained Intent can be sanitized by removing dangerous flags before using it to return data to the calling component.\n\n\n```java\npublic class IntentUriPermissionManipulation extends Activity {\n\n    // BAD: the user-provided Intent is returned as-is\n    public void dangerous() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: a new Intent is created and returned\n    public void safe() {\n        Intent intent = new Intent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: the user-provided Intent is sanitized before being returned\n    public void sanitized() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        intent.removeFlags(\n                Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);\n        setResult(intent);\n    }\n}\n\n```\n\n## References\n* Google Help: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n",
+                  "text": "# Intent URI permission manipulation\nWhen an Android component expects a result from an Activity, `startActivityForResult` can be used. The started Activity can then use `setResult` to return the appropriate data to the calling component.\n\nIf an Activity obtains the incoming, user-provided Intent and directly returns it via `setResult` without any checks, the application may be unintentionally giving arbitrary access to its content providers, even if they are not exported, as long as they are configured with the attribute `android:grantUriPermissions=\"true\"`. This happens because the attacker adds the appropriate URI permission flags to the provided Intent, which take effect once the Intent is reflected back.\n\n\n## Recommendation\nAvoid returning user-provided or untrusted Intents via `setResult`. Use a new Intent instead.\n\nIf it is required to use the received Intent, make sure that it does not contain URI permission flags, either by checking them with `Intent.getFlags` or removing them with `Intent.removeFlags`.\n\n\n## Example\nThe following sample contains three examples. In the first example, a user-provided Intent is obtained and directly returned back with `setResult`, which is dangerous. In the second example, a new Intent is created to safely return the desired data. The third example shows how the obtained Intent can be sanitized by removing dangerous flags before using it to return data to the calling component.\n\n\n```java\npublic class IntentUriPermissionManipulation extends Activity {\n\n    // BAD: the user-provided Intent is returned as-is\n    public void dangerous() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: a new Intent is created and returned\n    public void safe() {\n        Intent intent = new Intent();\n        intent.putExtra(\"result\", \"resultData\");\n        setResult(intent);\n    }\n\n    // GOOD: the user-provided Intent is sanitized before being returned\n    public void sanitized() {\n        Intent intent = getIntent();\n        intent.putExtra(\"result\", \"resultData\");\n        intent.removeFlags(\n                Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);\n        setResult(intent);\n    }\n}\n\n```\n\n## References\n* Google Help: [Remediation for Intent Redirection Vulnerability](https://support.google.com/faqs/answer/9267555?hl=en).\n* Common Weakness Enumeration: [CWE-266](https://cwe.mitre.org/data/definitions/266.html).\n* Common Weakness Enumeration: [CWE-926](https://cwe.mitre.org/data/definitions/926.html).\n"
+                },
+                "id": "java/android/intent-uri-permission-manipulation",
+                "name": "java/android/intent-uri-permission-manipulation",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-266/IntentUriPermissionManipulation.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-266",
+                    "external/cwe/cwe-926",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Intent URI permission manipulation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Network connections that do not use certificate pinning may allow attackers to eavesdrop on communications."
+                },
+                "help": {
+                  "markdown": "# Android missing certificate pinning\nCertificate pinning is the practice of only trusting a specific set of SSL certificates, rather than those that the device trusts by default. In Android applications, it is reccomended to use certificate pinning when communicating over the network, in order to minimize the risk of machine-in-the-middle attacks from a compromised CA.\n\n\n## Recommendation\nThe easiest way to implement certificate pinning is to declare your pins in a `network-security-config` XML file. This will automatically provide certificate pinning for any network connection made by the app.\n\nAnother way to implement certificate pinning is to use the \\`CertificatePinner\\` class from the \\`okhttp\\` library.\n\nA final way to implement certificate pinning is to use a `TrustManager`, initialized from a `KeyStore` loaded with only the necessary certificates.\n\n\n## Example\nIn the first (bad) case below, a network call is performed with no certificate pinning implemented. The other (good) cases demonstrate the different ways to implement certificate pinning.\n\n\n```java\n// BAD - By default, this network call does not use certificate pinning\nURLConnection conn = new URL(\"https://example.com\").openConnection();\n```\n\n```xml\n\n\n\n\n\n    \n        ...\n    \n\n\n\n\n\n    \n        good.example.com\n        \n            ...\n        \n    \n\n```\n\n```java\n// GOOD: Certificate pinning implemented via okhttp3.CertificatePinner \nCertificatePinner certificatePinner = new CertificatePinner.Builder()\n    .add(\"example.com\", \"sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\")\n    .build();\nOkHttpClient client = new OkHttpClient.Builder()\n    .certificatePinner(certificatePinner)\n    .build();\n\nclient.newCall(new Request.Builder().url(\"https://example.com\").build()).execute();\n\n\n\n// GOOD: Certificate pinning implemented via a TrustManager\nKeyStore keyStore = KeyStore.getInstance(\"BKS\");\nkeyStore.load(resources.openRawResource(R.raw.cert), null);\n\nTrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\ntmf.init(keyStore);\n\nSSLContext sslContext = SSLContext.getInstance(\"TLS\");\nsslContext.init(null, tmf.getTrustManagers(), null);\n\nURL url = new URL(\"http://www.example.com/\");\nHttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); \n\nurlConnection.setSSLSocketFactory(sslContext.getSocketFactory());\n```\n\n## References\n* OWASP Mobile Security: [Testing Custom Certificate Stores and Certificate Pinning (MSTG-NETWORK-4)](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05g-testing-network-communication#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4).\n* Android Developers: [Network security configuration](https://developer.android.com/training/articles/security-config).\n* OkHttp: [CertificatePinner](https://square.github.io/okhttp/4.x/okhttp/okhttp3/-certificate-pinner/).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n",
+                  "text": "# Android missing certificate pinning\nCertificate pinning is the practice of only trusting a specific set of SSL certificates, rather than those that the device trusts by default. In Android applications, it is reccomended to use certificate pinning when communicating over the network, in order to minimize the risk of machine-in-the-middle attacks from a compromised CA.\n\n\n## Recommendation\nThe easiest way to implement certificate pinning is to declare your pins in a `network-security-config` XML file. This will automatically provide certificate pinning for any network connection made by the app.\n\nAnother way to implement certificate pinning is to use the \\`CertificatePinner\\` class from the \\`okhttp\\` library.\n\nA final way to implement certificate pinning is to use a `TrustManager`, initialized from a `KeyStore` loaded with only the necessary certificates.\n\n\n## Example\nIn the first (bad) case below, a network call is performed with no certificate pinning implemented. The other (good) cases demonstrate the different ways to implement certificate pinning.\n\n\n```java\n// BAD - By default, this network call does not use certificate pinning\nURLConnection conn = new URL(\"https://example.com\").openConnection();\n```\n\n```xml\n\n\n\n\n\n    \n        ...\n    \n\n\n\n\n\n    \n        good.example.com\n        \n            ...\n        \n    \n\n```\n\n```java\n// GOOD: Certificate pinning implemented via okhttp3.CertificatePinner \nCertificatePinner certificatePinner = new CertificatePinner.Builder()\n    .add(\"example.com\", \"sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\")\n    .build();\nOkHttpClient client = new OkHttpClient.Builder()\n    .certificatePinner(certificatePinner)\n    .build();\n\nclient.newCall(new Request.Builder().url(\"https://example.com\").build()).execute();\n\n\n\n// GOOD: Certificate pinning implemented via a TrustManager\nKeyStore keyStore = KeyStore.getInstance(\"BKS\");\nkeyStore.load(resources.openRawResource(R.raw.cert), null);\n\nTrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\ntmf.init(keyStore);\n\nSSLContext sslContext = SSLContext.getInstance(\"TLS\");\nsslContext.init(null, tmf.getTrustManagers(), null);\n\nURL url = new URL(\"http://www.example.com/\");\nHttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); \n\nurlConnection.setSSLSocketFactory(sslContext.getSocketFactory());\n```\n\n## References\n* OWASP Mobile Security: [Testing Custom Certificate Stores and Certificate Pinning (MSTG-NETWORK-4)](https://mobile-security.gitbook.io/mobile-security-testing-guide/android-testing-guide/0x05g-testing-network-communication#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4).\n* Android Developers: [Network security configuration](https://developer.android.com/training/articles/security-config).\n* OkHttp: [CertificatePinner](https://square.github.io/okhttp/4.x/okhttp/okhttp3/-certificate-pinner/).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n"
+                },
+                "id": "java/android/missing-certificate-pinning",
+                "name": "java/android/missing-certificate-pinning",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-295/AndroidMissingCertificatePinning.ql",
+                  "security-severity": "5.9",
+                  "tags": [
+                    "external/cwe/cwe-295",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android missing certificate pinning"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An Android application uses implicit Intents containing sensitive data in a way that exposes it to arbitrary applications on the device."
+                },
+                "help": {
+                  "markdown": "# Leaking sensitive information through an implicit Intent\nWhen an implicit Intent is used with a method such as `startActivity`, `startService`, or `sendBroadcast`, it may be read by other applications on the device.\n\nThis means that sensitive data in these Intents may be leaked.\n\n\n## Recommendation\nFor `sendBroadcast` methods, a receiver permission may be specified so that only applications with a certain permission may receive the Intent; or a `LocalBroadcastManager` may be used. Otherwise, ensure that Intents containing sensitive data have an explicit receiver class set.\n\n\n## Example\nThe following example shows two ways of broadcasting Intents. In the 'BAD' case, no \"receiver permission\" is specified. In the 'GOOD' case, \"receiver permission\" or \"receiver application\" is specified.\n\n\n```java\npublic void sendBroadcast1(Context context, String token, String refreshToken) \n{\n    {\n        // BAD: broadcast sensitive information to all listeners\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n\n    {\n        // GOOD: broadcast sensitive information only to those with permission\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent, \"com.example.user_permission\");\n    }\n\n    {\n        // GOOD: broadcast sensitive information to a specific application\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.setClassName(\"com.example2\", \"com.example2.UserInfoHandler\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n}\n```\n\n## References\n* Android Developers: [Security considerations and best practices for sending and receiving broadcasts](https://developer.android.com/guide/components/broadcasts)\n* SonarSource: [Broadcasting intents is security-sensitive](https://rules.sonarsource.com/java/type/Security%20Hotspot/RSPEC-5320)\n* Android Developer Fundamentals: [Restricting broadcasts](https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-3-working-in-the-background/lesson-7-background-tasks/7-3-c-broadcasts/7-3-c-broadcasts.html)\n* Carnegie Mellon University: [DRD03-J. Do not broadcast sensitive information using an implicit intent](https://wiki.sei.cmu.edu/confluence/display/android/DRD03-J.+Do+not+broadcast+sensitive+information+using+an+implicit+intent)\n* Android Developers: [Android LiveData Overview](https://developer.android.com/topic/libraries/architecture/livedata)\n* Oversecured: [Interception of Android implicit intents](https://blog.oversecured.com/Interception-of-Android-implicit-intents/)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n",
+                  "text": "# Leaking sensitive information through an implicit Intent\nWhen an implicit Intent is used with a method such as `startActivity`, `startService`, or `sendBroadcast`, it may be read by other applications on the device.\n\nThis means that sensitive data in these Intents may be leaked.\n\n\n## Recommendation\nFor `sendBroadcast` methods, a receiver permission may be specified so that only applications with a certain permission may receive the Intent; or a `LocalBroadcastManager` may be used. Otherwise, ensure that Intents containing sensitive data have an explicit receiver class set.\n\n\n## Example\nThe following example shows two ways of broadcasting Intents. In the 'BAD' case, no \"receiver permission\" is specified. In the 'GOOD' case, \"receiver permission\" or \"receiver application\" is specified.\n\n\n```java\npublic void sendBroadcast1(Context context, String token, String refreshToken) \n{\n    {\n        // BAD: broadcast sensitive information to all listeners\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n\n    {\n        // GOOD: broadcast sensitive information only to those with permission\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent, \"com.example.user_permission\");\n    }\n\n    {\n        // GOOD: broadcast sensitive information to a specific application\n        Intent intent = new Intent();\n        intent.setAction(\"com.example.custom_action\");\n        intent.setClassName(\"com.example2\", \"com.example2.UserInfoHandler\");\n        intent.putExtra(\"token\", token);\n        intent.putExtra(\"refreshToken\", refreshToken);\n        context.sendBroadcast(intent);\n    }\n}\n```\n\n## References\n* Android Developers: [Security considerations and best practices for sending and receiving broadcasts](https://developer.android.com/guide/components/broadcasts)\n* SonarSource: [Broadcasting intents is security-sensitive](https://rules.sonarsource.com/java/type/Security%20Hotspot/RSPEC-5320)\n* Android Developer Fundamentals: [Restricting broadcasts](https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-3-working-in-the-background/lesson-7-background-tasks/7-3-c-broadcasts/7-3-c-broadcasts.html)\n* Carnegie Mellon University: [DRD03-J. Do not broadcast sensitive information using an implicit intent](https://wiki.sei.cmu.edu/confluence/display/android/DRD03-J.+Do+not+broadcast+sensitive+information+using+an+implicit+intent)\n* Android Developers: [Android LiveData Overview](https://developer.android.com/topic/libraries/architecture/livedata)\n* Oversecured: [Interception of Android implicit intents](https://blog.oversecured.com/Interception-of-Android-implicit-intents/)\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n"
+                },
+                "id": "java/android/sensitive-communication",
+                "name": "java/android/sensitive-communication",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-927/SensitiveCommunication.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-927",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Leaking sensitive information through an implicit Intent"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Allowing the keyboard to cache sensitive information may result in information leaks to other applications."
+                },
+                "help": {
+                  "markdown": "# Android sensitive keyboard cache\nWhen a user enters information in a text input field on an Android application, their input is saved to a keyboard cache which provides autocomplete suggestions and predictions. There is a risk that sensitive user data, such as passwords or banking information, may be leaked to other applications via the keyboard cache.\n\n\n## Recommendation\nFor input fields expected to accept sensitive information, use input types such as `\"textNoSuggestions\"` (or `\"textPassword\"` for a password) to ensure the input does not get stored in the keyboard cache.\n\nOptionally, instead of declaring an input type through XML, you can set the input type in your code using `TextView.setInputType()`.\n\n\n## Example\nIn the following example, the field labeled BAD allows the password to be saved to the keyboard cache, whereas the field labeled GOOD uses the `\"textPassword\"` input type to ensure the password is not cached.\n\n\n```xml\n\n\n\n    \n     \n\n    \n      \n\n```\n\n## References\n* OWASP Mobile Application Security Testing Guide: [Determining Whether the Keyboard Cache Is Disabled for Text Input Fields](https://github.com/OWASP/owasp-mastg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#determining-whether-the-keyboard-cache-is-disabled-for-text-input-fields-mstg-storage-5).\n* Android Developers: [android:inputType attribute documentation.](https://developer.android.com/reference/android/widget/TextView#attr_android:inputType)\n* Common Weakness Enumeration: [CWE-524](https://cwe.mitre.org/data/definitions/524.html).\n",
+                  "text": "# Android sensitive keyboard cache\nWhen a user enters information in a text input field on an Android application, their input is saved to a keyboard cache which provides autocomplete suggestions and predictions. There is a risk that sensitive user data, such as passwords or banking information, may be leaked to other applications via the keyboard cache.\n\n\n## Recommendation\nFor input fields expected to accept sensitive information, use input types such as `\"textNoSuggestions\"` (or `\"textPassword\"` for a password) to ensure the input does not get stored in the keyboard cache.\n\nOptionally, instead of declaring an input type through XML, you can set the input type in your code using `TextView.setInputType()`.\n\n\n## Example\nIn the following example, the field labeled BAD allows the password to be saved to the keyboard cache, whereas the field labeled GOOD uses the `\"textPassword\"` input type to ensure the password is not cached.\n\n\n```xml\n\n\n\n    \n     \n\n    \n      \n\n```\n\n## References\n* OWASP Mobile Application Security Testing Guide: [Determining Whether the Keyboard Cache Is Disabled for Text Input Fields](https://github.com/OWASP/owasp-mastg/blob/b7a93a2e5e0557cc9a12e55fc3f6675f6986bb86/Document/0x05d-Testing-Data-Storage.md#determining-whether-the-keyboard-cache-is-disabled-for-text-input-fields-mstg-storage-5).\n* Android Developers: [android:inputType attribute documentation.](https://developer.android.com/reference/android/widget/TextView#attr_android:inputType)\n* Common Weakness Enumeration: [CWE-524](https://cwe.mitre.org/data/definitions/524.html).\n"
+                },
+                "id": "java/android/sensitive-keyboard-cache",
+                "name": "java/android/sensitive-keyboard-cache",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-524/SensitiveKeyboardCache.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-524",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android sensitive keyboard cache"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Sensitive information exposed in a system notification can be read by an unauthorized application."
+                },
+                "help": {
+                  "markdown": "# Exposure of sensitive information to notifications\nSensitive information such as passwords or two-factor authentication (2FA) codes should not be exposed in a system notification. Notifications should not be considered secure, as other untrusted applications may be able to use a `NotificationListenerService` to read the contents of notifications.\n\n\n## Recommendation\nDo not expose sensitive data in notifications.\n\n\n## Example\nIn the following sample, the `password` is sent as part of a notification. This can allow another application to read this password.\n\n\n```java\n// BAD: `password` is exposed in a notification.\nvoid confirmPassword(String password) {\n    NotificationManager manager = NotificationManager.from(this);\n    manager.send(\n        new Notification.Builder(this, CHANNEL_ID)\n        .setContentText(\"Your password is: \" + password)\n        .build());\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - Application Notifications](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#app-notifications)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Exposure of sensitive information to notifications\nSensitive information such as passwords or two-factor authentication (2FA) codes should not be exposed in a system notification. Notifications should not be considered secure, as other untrusted applications may be able to use a `NotificationListenerService` to read the contents of notifications.\n\n\n## Recommendation\nDo not expose sensitive data in notifications.\n\n\n## Example\nIn the following sample, the `password` is sent as part of a notification. This can allow another application to read this password.\n\n\n```java\n// BAD: `password` is exposed in a notification.\nvoid confirmPassword(String password) {\n    NotificationManager manager = NotificationManager.from(this);\n    manager.send(\n        new Notification.Builder(this, CHANNEL_ID)\n        .setContentText(\"Your password is: \" + password)\n        .build());\n}\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - Application Notifications](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#app-notifications)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/sensitive-notification",
+                "name": "java/android/sensitive-notification",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidSensitiveNotifications.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Exposure of sensitive information to notifications"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Sending sensitive data to a 'ResultReceiver' obtained from an untrusted source can allow malicious actors access to your information."
+                },
+                "help": {
+                  "markdown": "# Leaking sensitive information through a ResultReceiver\nIf a `ResultReceiver` is obtained from an untrusted source, such as an `Intent` received by an exported component, do not send it sensitive data. Otherwise, the information may be leaked to a malicious application.\n\n\n## Recommendation\nDo not send sensitive data to an untrusted `ResultReceiver`.\n\n\n## Example\nIn the following (bad) example, sensitive data is sent to an untrusted `ResultReceiver`.\n\n\n```java\n// BAD: Sensitive data is sent to an untrusted result receiver \nvoid bad(String password) {\n    Intent intent = getIntent();\n    ResultReceiver rec = intent.getParcelableExtra(\"Receiver\");\n    Bundle b = new Bundle();\n    b.putCharSequence(\"pass\", password);\n    rec.send(0, b); \n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n",
+                  "text": "# Leaking sensitive information through a ResultReceiver\nIf a `ResultReceiver` is obtained from an untrusted source, such as an `Intent` received by an exported component, do not send it sensitive data. Otherwise, the information may be leaked to a malicious application.\n\n\n## Recommendation\nDo not send sensitive data to an untrusted `ResultReceiver`.\n\n\n## Example\nIn the following (bad) example, sensitive data is sent to an untrusted `ResultReceiver`.\n\n\n```java\n// BAD: Sensitive data is sent to an untrusted result receiver \nvoid bad(String password) {\n    Intent intent = getIntent();\n    ResultReceiver rec = intent.getParcelableExtra(\"Receiver\");\n    Bundle b = new Bundle();\n    b.putCharSequence(\"pass\", password);\n    rec.send(0, b); \n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-927](https://cwe.mitre.org/data/definitions/927.html).\n"
+                },
+                "id": "java/android/sensitive-result-receiver",
+                "name": "java/android/sensitive-result-receiver",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-927/SensitiveResultReceiver.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-927",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Leaking sensitive information through a ResultReceiver"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Sensitive information displayed in UI text views should be properly masked."
+                },
+                "help": {
+                  "markdown": "# Exposure of sensitive information to UI text views\nSensitive information such as passwords should not be displayed in UI components unless explicitly required, to mitigate shoulder-surfing attacks.\n\n\n## Recommendation\nFor editable text fields containing sensitive information, the `inputType` should be set to `textPassword` or similar to ensure it is properly masked. Otherwise, sensitive data that must be displayed should be hidden by default, and only revealed based on an explicit user action.\n\n\n## Example\nIn the following (bad) case, sensitive information in `password` is exposed to the `TextView`.\n\n\n```java\nTextView pwView = getViewById(R.id.pw_text);\npwView.setText(\"Your password is: \" + password);\n```\nIn the following (good) case, the user must press a button to reveal sensitive information.\n\n\n```java\nTextView pwView = findViewById(R.id.pw_text);\npwView.setVisibility(View.INVISIBLE);\npwView.setText(\"Your password is: \" + password);\n\nButton showButton = findViewById(R.id.show_pw_button);\nshowButton.setOnClickListener(new View.OnClickListener() {\n    public void onClick(View v) {\n      pwView.setVisibility(View.VISIBLE);\n    }\n});\n\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - UI Components](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#ui-components)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Exposure of sensitive information to UI text views\nSensitive information such as passwords should not be displayed in UI components unless explicitly required, to mitigate shoulder-surfing attacks.\n\n\n## Recommendation\nFor editable text fields containing sensitive information, the `inputType` should be set to `textPassword` or similar to ensure it is properly masked. Otherwise, sensitive data that must be displayed should be hidden by default, and only revealed based on an explicit user action.\n\n\n## Example\nIn the following (bad) case, sensitive information in `password` is exposed to the `TextView`.\n\n\n```java\nTextView pwView = getViewById(R.id.pw_text);\npwView.setText(\"Your password is: \" + password);\n```\nIn the following (good) case, the user must press a button to reveal sensitive information.\n\n\n```java\nTextView pwView = findViewById(R.id.pw_text);\npwView.setVisibility(View.INVISIBLE);\npwView.setText(\"Your password is: \" + password);\n\nButton showButton = findViewById(R.id.show_pw_button);\nshowButton.setOnClickListener(new View.OnClickListener() {\n    public void onClick(View v) {\n      pwView.setVisibility(View.VISIBLE);\n    }\n});\n\n```\n\n## References\n* OWASP Mobile Application Security: [Android Data Storage - UI Components](https://mas.owasp.org/MASTG/Android/0x05d-Testing-Data-Storage/#ui-components)\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/sensitive-text",
+                "name": "java/android/sensitive-text",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidSensitiveTextField.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Exposure of sensitive information to UI text views"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "JavaScript rendered inside WebViews can access protected application files and web resources from any origin exposing them to attack."
+                },
+                "help": {
+                  "markdown": "# Unsafe resource fetching in Android WebView\nAndroid WebViews that allow externally controlled URLs to be loaded, and whose JavaScript interface is enabled, are potentially vulnerable to cross-site scripting and sensitive resource disclosure attacks.\n\nA `WebView` whose `WebSettings` object has called `setAllowFileAccessFromFileURLs(true)` or `setAllowUniversalAccessFromFileURLs(true)` must not load any untrusted web content.\n\nEnabling these settings allows malicious scripts loaded in a `file://` context to launch cross-site scripting attacks, accessing arbitrary local files including WebView cookies, session tokens, private app data or even credentials used on arbitrary web sites.\n\nThis query detects the following two scenarios:\n\n1. A vulnerability introduced by WebViews when JavaScript is enabled and remote inputs are allowed.\n1. A more severe vulnerability when \"allow cross-origin resource access\" is also enabled. This setting was deprecated in API level 30 (Android 11), but most devices are still affected, especially since some Android phones are updated slowly or no longer updated at all.\n\n## Recommendation\nOnly allow trusted web content to be displayed in WebViews when JavaScript is enabled. Disallow cross-origin resource access in WebSettings to reduce the attack surface.\n\n\n## Example\nThe following example shows both 'BAD' and 'GOOD' configurations. In the 'BAD' configuration, JavaScript and the allow access setting are enabled and URLs are loaded from externally controlled inputs. In the 'GOOD' configuration, JavaScript is disabled or only trusted web content is allowed to be loaded.\n\n\n```java\npublic class UnsafeAndroidAccess extends Activity {\n\tpublic void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.webview);\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // dangerous remote input from  the intent's Bundle of extras\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getStringExtra(\"url\"); //dangerous remote input from intent extra\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript and cross-origin resource access disabled by default on modern Android (Jellybean+) while taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // remote input\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript enabled in webview but remote user input is not allowed\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\twv.loadUrl(\"https://www.mycorp.com\");\n\t\t}\n\t}\n}\n```\n\n## References\n* Google Help: [Fixing a File-based XSS Vulnerability](https://support.google.com/faqs/answer/7668153?hl=en)\n* OWASP: [Testing JavaScript Execution in WebViews (MSTG-PLATFORM-5)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5)\n* OWASP: [Testing WebView Protocol Handlers (MSTG-PLATFORM-6)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-webview-protocol-handlers-mstg-platform-6)\n* Common Weakness Enumeration: [CWE-749](https://cwe.mitre.org/data/definitions/749.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Unsafe resource fetching in Android WebView\nAndroid WebViews that allow externally controlled URLs to be loaded, and whose JavaScript interface is enabled, are potentially vulnerable to cross-site scripting and sensitive resource disclosure attacks.\n\nA `WebView` whose `WebSettings` object has called `setAllowFileAccessFromFileURLs(true)` or `setAllowUniversalAccessFromFileURLs(true)` must not load any untrusted web content.\n\nEnabling these settings allows malicious scripts loaded in a `file://` context to launch cross-site scripting attacks, accessing arbitrary local files including WebView cookies, session tokens, private app data or even credentials used on arbitrary web sites.\n\nThis query detects the following two scenarios:\n\n1. A vulnerability introduced by WebViews when JavaScript is enabled and remote inputs are allowed.\n1. A more severe vulnerability when \"allow cross-origin resource access\" is also enabled. This setting was deprecated in API level 30 (Android 11), but most devices are still affected, especially since some Android phones are updated slowly or no longer updated at all.\n\n## Recommendation\nOnly allow trusted web content to be displayed in WebViews when JavaScript is enabled. Disallow cross-origin resource access in WebSettings to reduce the attack surface.\n\n\n## Example\nThe following example shows both 'BAD' and 'GOOD' configurations. In the 'BAD' configuration, JavaScript and the allow access setting are enabled and URLs are loaded from externally controlled inputs. In the 'GOOD' configuration, JavaScript is disabled or only trusted web content is allowed to be loaded.\n\n\n```java\npublic class UnsafeAndroidAccess extends Activity {\n\tpublic void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.webview);\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // dangerous remote input from  the intent's Bundle of extras\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// BAD: Have both JavaScript and cross-origin resource access enabled in webview while\n\t\t// taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(R.id.my_webview);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\t\t\twebSettings.setAllowUniversalAccessFromFileURLs(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getStringExtra(\"url\"); //dangerous remote input from intent extra\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript and cross-origin resource access disabled by default on modern Android (Jellybean+) while taking remote user inputs\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tString thisUrl = getIntent().getExtras().getString(\"url\"); // remote input\n\t\t\twv.loadUrl(thisUrl);\n\t\t}\n\n\t\t// GOOD: Have JavaScript enabled in webview but remote user input is not allowed\n\t\t{\n\t\t\tWebView wv = (WebView) findViewById(-1);\n\t\t\tWebSettings webSettings = wv.getSettings();\n\n\t\t\twebSettings.setJavaScriptEnabled(true);\n\n\t\t\twv.setWebViewClient(new WebViewClient() {\n\t\t\t\t@Override\n\t\t\t\tpublic boolean shouldOverrideUrlLoading(WebView view, String url) {\n\t\t\t\t\tview.loadUrl(url);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\twv.loadUrl(\"https://www.mycorp.com\");\n\t\t}\n\t}\n}\n```\n\n## References\n* Google Help: [Fixing a File-based XSS Vulnerability](https://support.google.com/faqs/answer/7668153?hl=en)\n* OWASP: [Testing JavaScript Execution in WebViews (MSTG-PLATFORM-5)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5)\n* OWASP: [Testing WebView Protocol Handlers (MSTG-PLATFORM-6)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-webview-protocol-handlers-mstg-platform-6)\n* Common Weakness Enumeration: [CWE-749](https://cwe.mitre.org/data/definitions/749.html).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/android/unsafe-android-webview-fetch",
+                "name": "java/android/unsafe-android-webview-fetch",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-749/UnsafeAndroidAccess.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "external/cwe/cwe-749",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unsafe resource fetching in Android WebView"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Resolving externally-provided content URIs without validation can allow an attacker to access unexpected resources."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled data used in content resolution\nWhen an Android application wants to access data in a content provider, it uses the `ContentResolver` object. `ContentResolver`s communicate with an instance of a class that implements the `ContentProvider` interface via URIs with the `content://` scheme. The authority part (the first path segment) of the URI, passed as parameter to the `ContentResolver`, determines which content provider is contacted for the operation. Specific operations that act on files also support the `file://` scheme, in which case the local filesystem is queried instead. If an external component, like a malicious or compromised application, controls the URI for a `ContentResolver` operation, it can trick the vulnerable application into accessing its own private files or non-exported content providers. The attacking application might be able to get access to the file by forcing it to be copied to a public directory, like external storage, or tamper with the contents by making the application overwrite the file with unexpected data.\n\n\n## Recommendation\nIf possible, avoid using externally-provided data to determine the URI for a `ContentResolver` to use. If that is not an option, validate that the incoming URI can only reference trusted components, like an allow list of content providers and/or applications, or alternatively make sure that the URI does not reference private directories like `/data/`.\n\n\n## Example\nThis example shows three ways of opening a file using a `ContentResolver`. In the first case, externally-provided data from an intent is used directly in the file-reading operation. This allows an attacker to provide a URI of the form `/data/data/(vulnerable app package)/(private file)` to trick the application into reading it and copying it to the external storage. In the second case, an insufficient check is performed on the externally-provided URI, still leaving room for exploitation. In the third case, the URI is correctly validated before being used, making sure it does not reference any internal application files.\n\n\n```java\nimport android.content.ContentResolver;\nimport android.net.Uri;\n\npublic class Example extends Activity {\n    public void onCreate() {\n        // BAD: Externally-provided URI directly used in content resolution\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // BAD: input URI is not normalized, and check can be bypassed with \"..\" characters\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            if (path.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // GOOD: URI is properly validated to block access to internal files\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            java.nio.file.Path normalized =\n                    java.nio.file.FileSystems.getDefault().getPath(path).normalize();\n            if (normalized.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n    }\n\n    private void copyToExternalCache(InputStream is) {\n        // Reads the contents of is and writes a file in the app's external\n        // cache directory, which can be read publicly by applications in the same device.\n    }\n}\n\n```\n\n## References\n* Android developers: [Content provider basics](https://developer.android.com/guide/topics/providers/content-provider-basics)\n* [The ContentResolver class](https://developer.android.com/reference/android/content/ContentResolver)\n* Common Weakness Enumeration: [CWE-441](https://cwe.mitre.org/data/definitions/441.html).\n* Common Weakness Enumeration: [CWE-610](https://cwe.mitre.org/data/definitions/610.html).\n",
+                  "text": "# Uncontrolled data used in content resolution\nWhen an Android application wants to access data in a content provider, it uses the `ContentResolver` object. `ContentResolver`s communicate with an instance of a class that implements the `ContentProvider` interface via URIs with the `content://` scheme. The authority part (the first path segment) of the URI, passed as parameter to the `ContentResolver`, determines which content provider is contacted for the operation. Specific operations that act on files also support the `file://` scheme, in which case the local filesystem is queried instead. If an external component, like a malicious or compromised application, controls the URI for a `ContentResolver` operation, it can trick the vulnerable application into accessing its own private files or non-exported content providers. The attacking application might be able to get access to the file by forcing it to be copied to a public directory, like external storage, or tamper with the contents by making the application overwrite the file with unexpected data.\n\n\n## Recommendation\nIf possible, avoid using externally-provided data to determine the URI for a `ContentResolver` to use. If that is not an option, validate that the incoming URI can only reference trusted components, like an allow list of content providers and/or applications, or alternatively make sure that the URI does not reference private directories like `/data/`.\n\n\n## Example\nThis example shows three ways of opening a file using a `ContentResolver`. In the first case, externally-provided data from an intent is used directly in the file-reading operation. This allows an attacker to provide a URI of the form `/data/data/(vulnerable app package)/(private file)` to trick the application into reading it and copying it to the external storage. In the second case, an insufficient check is performed on the externally-provided URI, still leaving room for exploitation. In the third case, the URI is correctly validated before being used, making sure it does not reference any internal application files.\n\n\n```java\nimport android.content.ContentResolver;\nimport android.net.Uri;\n\npublic class Example extends Activity {\n    public void onCreate() {\n        // BAD: Externally-provided URI directly used in content resolution\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // BAD: input URI is not normalized, and check can be bypassed with \"..\" characters\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            if (path.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n        // GOOD: URI is properly validated to block access to internal files\n        {\n            ContentResolver contentResolver = getContentResolver();\n            Uri uri = (Uri) getIntent().getParcelableExtra(\"URI_EXTRA\");\n            String path = uri.getPath();\n            java.nio.file.Path normalized =\n                    java.nio.file.FileSystems.getDefault().getPath(path).normalize();\n            if (normalized.startsWith(\"/data\"))\n                throw new SecurityException();\n            InputStream is = contentResolver.openInputStream(uri);\n            copyToExternalCache(is);\n        }\n    }\n\n    private void copyToExternalCache(InputStream is) {\n        // Reads the contents of is and writes a file in the app's external\n        // cache directory, which can be read publicly by applications in the same device.\n    }\n}\n\n```\n\n## References\n* Android developers: [Content provider basics](https://developer.android.com/guide/topics/providers/content-provider-basics)\n* [The ContentResolver class](https://developer.android.com/reference/android/content/ContentResolver)\n* Common Weakness Enumeration: [CWE-441](https://cwe.mitre.org/data/definitions/441.html).\n* Common Weakness Enumeration: [CWE-610](https://cwe.mitre.org/data/definitions/610.html).\n"
+                },
+                "id": "java/android/unsafe-content-uri-resolution",
+                "name": "java/android/unsafe-content-uri-resolution",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-441/UnsafeContentUriResolution.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-441",
+                    "external/cwe/cwe-610",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled data used in content resolution"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Access to content providers in a WebView can allow access to protected information by loading content:// links."
+                },
+                "help": {
+                  "markdown": "# Android WebView settings allows access to content links\nAndroid can provide access to content providers within a WebView using the `setAllowContentAccess` setting.\n\nAllowing access to content providers via `content://` URLs may allow JavaScript to access protected content.\n\n\n## Recommendation\nIf your app does not require access to the `content://` URL functionality, you should explicitly disable the setting by calling `setAllowContentAccess(false)` on the settings of the WebView.\n\n\n## Example\nIn the following (bad) example, access to `content://` URLs is explicitly allowed.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(true);\n\n```\nIn the following (good) example, access to `content://` URLs is explicitly denied.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(false);\n\n```\n\n## References\n* Android Documentation: [setAllowContentAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowContentAccess(boolean)).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Android WebView settings allows access to content links\nAndroid can provide access to content providers within a WebView using the `setAllowContentAccess` setting.\n\nAllowing access to content providers via `content://` URLs may allow JavaScript to access protected content.\n\n\n## Recommendation\nIf your app does not require access to the `content://` URL functionality, you should explicitly disable the setting by calling `setAllowContentAccess(false)` on the settings of the WebView.\n\n\n## Example\nIn the following (bad) example, access to `content://` URLs is explicitly allowed.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(true);\n\n```\nIn the following (good) example, access to `content://` URLs is explicitly denied.\n\n\n```java\nWebSettings settings = webview.getSettings();\n\nsettings.setAllowContentAccess(false);\n\n```\n\n## References\n* Android Documentation: [setAllowContentAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowContentAccess(boolean)).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/websettings-allow-content-access",
+                "name": "java/android/websettings-allow-content-access",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android WebView settings allows access to content links"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Enabling access to the file system in a WebView allows attackers to view sensitive information."
+                },
+                "help": {
+                  "markdown": "# Android WebSettings file access\nAllowing file access in an Android WebView can expose a device's file system to the JavaScript running in that WebView. If the JavaScript contains vulnerabilities or the WebView loads untrusted content, file access allows an attacker to steal the user's data.\n\n\n## Recommendation\nWhen possible, do not allow file access. The file access settings are disabled by default. You can explicitly disable file access by setting the following settings to `false`:\n\n* `setAllowFileAccess`\n* `setAllowFileAccessFromFileURLs`\n* `setAllowUniversalAccessFromFileURLs`\nIf your application requires access to the file system, it is best to avoid using `file://` URLs. Instead, use an alternative that loads files via HTTPS, such as `androidx.webkit.WebViewAssetLoader`.\n\n\n## Example\nIn the following (bad) example, the WebView is configured with settings that allow local file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(true);\nsettings.setAllowFileAccessFromURLs(true);\nsettings.setAllowUniversalAccessFromURLs(true);\n\n```\nIn the following (good) example, the WebView is configured to disallow file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(false);\nsettings.setAllowFileAccessFromURLs(false);\nsettings.setAllowUniversalAccessFromURLs(false);\n\n```\nAs mentioned previously, asset loaders can load files without file system access. In the following (good) example, an asset loader is configured to load assets over HTTPS.\n\n\n```java\nWebViewAssetLoader loader = new WebViewAssetLoader.Builder()\n    // Replace the domain with a domain you control, or use the default\n    // appassets.androidplatform.com\n    .setDomain(\"appassets.example.com\")\n    .addPathHandler(\"/resources\", new AssetsPathHandler(this))\n    .build();\n\nwebView.setWebViewClient(new WebViewClientCompat() {\n    @Override\n    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {\n        return assetLoader.shouldInterceptRequest(request.getUrl());\n    }\n});\n\nwebView.loadUrl(\"https://appassets.example.com/resources/www/index.html\");\n\n```\n\n## References\n* Android documentation: [WebSettings.setAllowFileAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccess(boolean)).\n* Android documentation: [WebSettings.setAllowFileAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccessFromFileURLs(boolean)).\n* Android documentation: [WebSettings.setAllowUniversalAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowUniversalAccessFromFileURLs(boolean)).\n* Android documentation: [WebViewAssetLoader](https://developer.android.com/reference/androidx/webkit/WebViewAssetLoader).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n",
+                  "text": "# Android WebSettings file access\nAllowing file access in an Android WebView can expose a device's file system to the JavaScript running in that WebView. If the JavaScript contains vulnerabilities or the WebView loads untrusted content, file access allows an attacker to steal the user's data.\n\n\n## Recommendation\nWhen possible, do not allow file access. The file access settings are disabled by default. You can explicitly disable file access by setting the following settings to `false`:\n\n* `setAllowFileAccess`\n* `setAllowFileAccessFromFileURLs`\n* `setAllowUniversalAccessFromFileURLs`\nIf your application requires access to the file system, it is best to avoid using `file://` URLs. Instead, use an alternative that loads files via HTTPS, such as `androidx.webkit.WebViewAssetLoader`.\n\n\n## Example\nIn the following (bad) example, the WebView is configured with settings that allow local file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(true);\nsettings.setAllowFileAccessFromURLs(true);\nsettings.setAllowUniversalAccessFromURLs(true);\n\n```\nIn the following (good) example, the WebView is configured to disallow file access.\n\n\n```java\nWebSettings settings = view.getSettings();\n\nsettings.setAllowFileAccess(false);\nsettings.setAllowFileAccessFromURLs(false);\nsettings.setAllowUniversalAccessFromURLs(false);\n\n```\nAs mentioned previously, asset loaders can load files without file system access. In the following (good) example, an asset loader is configured to load assets over HTTPS.\n\n\n```java\nWebViewAssetLoader loader = new WebViewAssetLoader.Builder()\n    // Replace the domain with a domain you control, or use the default\n    // appassets.androidplatform.com\n    .setDomain(\"appassets.example.com\")\n    .addPathHandler(\"/resources\", new AssetsPathHandler(this))\n    .build();\n\nwebView.setWebViewClient(new WebViewClientCompat() {\n    @Override\n    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {\n        return assetLoader.shouldInterceptRequest(request.getUrl());\n    }\n});\n\nwebView.loadUrl(\"https://appassets.example.com/resources/www/index.html\");\n\n```\n\n## References\n* Android documentation: [WebSettings.setAllowFileAccess](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccess(boolean)).\n* Android documentation: [WebSettings.setAllowFileAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowFileAccessFromFileURLs(boolean)).\n* Android documentation: [WebSettings.setAllowUniversalAccessFromFileURLs](https://developer.android.com/reference/android/webkit/WebSettings#setAllowUniversalAccessFromFileURLs(boolean)).\n* Android documentation: [WebViewAssetLoader](https://developer.android.com/reference/androidx/webkit/WebViewAssetLoader).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n"
+                },
+                "id": "java/android/websettings-file-access",
+                "name": "java/android/websettings-file-access",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsFileAccess.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android WebSettings file access"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Enabling JavaScript execution in a WebView can result in cross-site scripting attacks."
+                },
+                "help": {
+                  "markdown": "# Android WebView JavaScript settings\nEnabling JavaScript in an Android WebView allows the execution of JavaScript code in the context of the running application. This creates a cross-site scripting vulnerability.\n\nFor example, if your application's WebView allows for visiting web pages that you do not trust, it is possible for an attacker to lead the user to a page which loads malicious JavaScript.\n\nYou can enable or disable Javascript execution using the `setJavaScriptEnabled` method of the settings of a WebView.\n\n\n## Recommendation\nJavaScript execution is disabled by default. You can explicitly disable it by calling `setJavaScriptEnabled(false)` on the settings of the WebView.\n\nIf JavaScript is necessary, only load content from trusted servers using encrypted channels, such as HTTPS with certificate verification.\n\n\n## Example\nIn the following (bad) example, a WebView has JavaScript enabled in its settings:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(true);\n\n```\nIn the following (good) example, a WebView explicitly disallows JavaScript execution:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(false);\n\n```\n\n## References\n* Android documentation: [setJavaScriptEnabled](https://developer.android.com/reference/android/webkit/WebSettings#setJavaScriptEnabled(boolean))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Android WebView JavaScript settings\nEnabling JavaScript in an Android WebView allows the execution of JavaScript code in the context of the running application. This creates a cross-site scripting vulnerability.\n\nFor example, if your application's WebView allows for visiting web pages that you do not trust, it is possible for an attacker to lead the user to a page which loads malicious JavaScript.\n\nYou can enable or disable Javascript execution using the `setJavaScriptEnabled` method of the settings of a WebView.\n\n\n## Recommendation\nJavaScript execution is disabled by default. You can explicitly disable it by calling `setJavaScriptEnabled(false)` on the settings of the WebView.\n\nIf JavaScript is necessary, only load content from trusted servers using encrypted channels, such as HTTPS with certificate verification.\n\n\n## Example\nIn the following (bad) example, a WebView has JavaScript enabled in its settings:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(true);\n\n```\nIn the following (good) example, a WebView explicitly disallows JavaScript execution:\n\n\n```java\nWebSettings settings = webview.getSettings();\nsettings.setJavaScriptEnabled(false);\n\n```\n\n## References\n* Android documentation: [setJavaScriptEnabled](https://developer.android.com/reference/android/webkit/WebSettings#setJavaScriptEnabled(boolean))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/android/websettings-javascript-enabled",
+                "name": "java/android/websettings-javascript-enabled",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-079/AndroidWebViewSettingsEnabledJavaScript.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android WebView JavaScript settings"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Exposing a Java object in a WebView with a JavaScript interface can lead to malicious JavaScript controlling the application."
+                },
+                "help": {
+                  "markdown": "# Access Java object methods through JavaScript exposure\nCalling the `addJavascriptInterface` method of the `android.webkit.WebView` class allows the web pages of a WebView to access a Java object's methods via JavaScript.\n\nObjects exposed to JavaScript are available in all frames of the WebView.\n\n\n## Recommendation\nIf you need to expose Java objects to JavaScript, guarantee that no untrusted third-party content is loaded into the WebView.\n\n\n## Example\nIn the following (bad) example, a Java object is exposed to JavaScript.\n\n\n```java\nimport android.webkit.JavascriptInterface;\nimport android.database.sqlite.SQLiteOpenHelper;\n\nclass ExposedObject extends SQLiteOpenHelper {\n    @JavascriptInterface\n    public String studentEmail(String studentName) {\n        // SQL injection\n        String query = \"SELECT email FROM students WHERE studentname = '\" + studentName + \"'\";\n\n        Cursor cursor = db.rawQuery(query, null);\n        cursor.moveToFirst();\n        String email = cursor.getString(0);\n\n        return email;\n    }\n}\n\nwebview.getSettings().setJavaScriptEnabled(true);\nwebview.addJavaScriptInterface(new ExposedObject(), \"exposedObject\");\nwebview.loadData(\"\", \"text/html\", null);\n\nString name = \"Robert'; DROP TABLE students; --\";\nwebview.loadUrl(\"javascript:alert(exposedObject.studentEmail(\\\"\"+ name +\"\\\"))\");\n\n```\n\n## References\n* Android Documentation: [addJavascriptInterface](https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Access Java object methods through JavaScript exposure\nCalling the `addJavascriptInterface` method of the `android.webkit.WebView` class allows the web pages of a WebView to access a Java object's methods via JavaScript.\n\nObjects exposed to JavaScript are available in all frames of the WebView.\n\n\n## Recommendation\nIf you need to expose Java objects to JavaScript, guarantee that no untrusted third-party content is loaded into the WebView.\n\n\n## Example\nIn the following (bad) example, a Java object is exposed to JavaScript.\n\n\n```java\nimport android.webkit.JavascriptInterface;\nimport android.database.sqlite.SQLiteOpenHelper;\n\nclass ExposedObject extends SQLiteOpenHelper {\n    @JavascriptInterface\n    public String studentEmail(String studentName) {\n        // SQL injection\n        String query = \"SELECT email FROM students WHERE studentname = '\" + studentName + \"'\";\n\n        Cursor cursor = db.rawQuery(query, null);\n        cursor.moveToFirst();\n        String email = cursor.getString(0);\n\n        return email;\n    }\n}\n\nwebview.getSettings().setJavaScriptEnabled(true);\nwebview.addJavaScriptInterface(new ExposedObject(), \"exposedObject\");\nwebview.loadData(\"\", \"text/html\", null);\n\nString name = \"Robert'; DROP TABLE students; --\";\nwebview.loadUrl(\"javascript:alert(exposedObject.studentEmail(\\\"\"+ name +\"\\\"))\");\n\n```\n\n## References\n* Android Documentation: [addJavascriptInterface](https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String))\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/android/webview-addjavascriptinterface",
+                "name": "java/android/webview-addjavascriptinterface",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-079/AndroidWebViewAddJavascriptInterface.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Access Java object methods through JavaScript exposure"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Enabling Webview debugging in production builds can expose entry points or leak sensitive information."
+                },
+                "help": {
+                  "markdown": "# Android Webview debugging enabled\nThe `WebView.setWebContentsDebuggingEnabled` method enables or disables the contents of any `WebView` in the application to be debugged.\n\nYou should only enable debugging features during development. When you create a production build, you should disable it. If you enable debugging features, this can make your code vulnerable by adding entry points, or leaking sensitive information.\n\n\n## Recommendation\nEnsure that debugging features are not enabled in production builds, such as by guarding calls to `WebView.setWebContentsDebuggingEnabled(true)` by a flag that is only enabled in debug builds.\n\n\n## Example\nIn the first (bad) example, WebView debugging is always enabled. whereas the GOOD case only enables it if the `android:debuggable` attribute is set to `true`.\n\n\n```java\n// BAD - debugging is always enabled \nWebView.setWebContentsDebuggingEnabled(true);\n\n// GOOD - debugging is only enabled when this is a debug build, as indicated by the debuggable flag being set.\nif (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {\n    WebView.setWebContentsDebuggingEnabled(true);\n}\n```\n\n## References\n* Android Developers: [setWebContentsDebuggingEnabled](https://developer.android.com/reference/android/webkit/WebView.html#setWebContentsDebuggingEnabled(boolean)).\n* Android Developers: [Remote debugging WebViews](https://developer.chrome.com/docs/devtools/remote-debugging/webviews/).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n",
+                  "text": "# Android Webview debugging enabled\nThe `WebView.setWebContentsDebuggingEnabled` method enables or disables the contents of any `WebView` in the application to be debugged.\n\nYou should only enable debugging features during development. When you create a production build, you should disable it. If you enable debugging features, this can make your code vulnerable by adding entry points, or leaking sensitive information.\n\n\n## Recommendation\nEnsure that debugging features are not enabled in production builds, such as by guarding calls to `WebView.setWebContentsDebuggingEnabled(true)` by a flag that is only enabled in debug builds.\n\n\n## Example\nIn the first (bad) example, WebView debugging is always enabled. whereas the GOOD case only enables it if the `android:debuggable` attribute is set to `true`.\n\n\n```java\n// BAD - debugging is always enabled \nWebView.setWebContentsDebuggingEnabled(true);\n\n// GOOD - debugging is only enabled when this is a debug build, as indicated by the debuggable flag being set.\nif (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {\n    WebView.setWebContentsDebuggingEnabled(true);\n}\n```\n\n## References\n* Android Developers: [setWebContentsDebuggingEnabled](https://developer.android.com/reference/android/webkit/WebView.html#setWebContentsDebuggingEnabled(boolean)).\n* Android Developers: [Remote debugging WebViews](https://developer.chrome.com/docs/devtools/remote-debugging/webviews/).\n* Common Weakness Enumeration: [CWE-489](https://cwe.mitre.org/data/definitions/489.html).\n"
+                },
+                "id": "java/android/webview-debugging-enabled",
+                "name": "java/android/webview-debugging-enabled",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-489/WebviewDebuggingEnabled.ql",
+                  "security-severity": "7.2",
+                  "tags": [
+                    "external/cwe/cwe-489",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android Webview debugging enabled"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Storing sensitive information in cleartext can expose it to an attacker."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information in cookie\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-315](https://cwe.mitre.org/data/definitions/315.html).\n",
+                  "text": "# Cleartext storage of sensitive information in cookie\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-315](https://cwe.mitre.org/data/definitions/315.html).\n"
+                },
+                "id": "java/cleartext-storage-in-cookie",
+                "name": "java/cleartext-storage-in-cookie",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageCookie.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "external/cwe/cwe-315",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information in cookie"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Storing sensitive information in cleartext can expose it to an attacker."
+                },
+                "help": {
+                  "markdown": "# Cleartext storage of sensitive information using 'Properties' class\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-313](https://cwe.mitre.org/data/definitions/313.html).\n",
+                  "text": "# Cleartext storage of sensitive information using 'Properties' class\nSensitive information that is stored unencrypted is accessible to an attacker who gains access to the storage.\n\n\n## Recommendation\nEnsure that sensitive information is always encrypted before being stored. It may be wise to encrypt information before it is put into a heap data structure (such as `Java.util.Properties`) that may be written to disk later. Objects that are serializable or marshallable should also always contain encrypted information unless you are certain that they are not ever going to be serialized.\n\nIn general, decrypt sensitive information only at the point where it is necessary for it to be used in cleartext.\n\n\n## Example\nThe following example shows two ways of storing user credentials in a cookie. In the 'BAD' case, the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are hashed before storing them.\n\n\n```java\npublic static void main(String[] args) {\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"BP@ssw0rd\".toCharArray());\n\t\tdata = credentials.getUserName() + \":\" + new String(credentials.getPassword());\n\t\n\t\t// BAD: store data in a cookie in cleartext form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n\t\n\t{\n\t\tString data;\n\t\tPasswordAuthentication credentials =\n\t\t\t\tnew PasswordAuthentication(\"user\", \"GP@ssw0rd\".toCharArray());\n\t\tString salt = \"ThisIsMySalt\";\n\t\tMessageDigest messageDigest = MessageDigest.getInstance(\"SHA-512\");\n\t\tmessageDigest.reset();\n\t\tString credentialsToHash =\n\t\t\t\tcredentials.getUserName() + \":\" + credentials.getPassword();\n\t\tbyte[] hashedCredsAsBytes =\n\t\t\t\tmessageDigest.digest((salt+credentialsToHash).getBytes(\"UTF-8\"));\n\t\tdata = bytesToString(hashedCredsAsBytes);\n\t\t\n\t\t// GOOD: store data in a cookie in encrypted form\n\t\tresponse.addCookie(new Cookie(\"auth\", data));\n\t}\n}\n\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* M. Dowd, J. McDonald and J. Schuhm, *The Art of Software Security Assessment*, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.\n* M. Howard and D. LeBlanc, *Writing Secure Code*, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.\n* Common Weakness Enumeration: [CWE-313](https://cwe.mitre.org/data/definitions/313.html).\n"
+                },
+                "id": "java/cleartext-storage-in-properties",
+                "name": "java/cleartext-storage-in-properties",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-312/CleartextStorageProperties.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-313",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cleartext storage of sensitive information using 'Properties' class"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using externally controlled strings in a command line is vulnerable to malicious changes in the strings."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled command line\nCode that passes user input directly to `Runtime.exec`, or some other library routine that executes a command, allows the user to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the command to run or library to load. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable libraries or commands cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nThe following example shows code that takes a shell script that can be changed maliciously by a user, and passes it straight to `Runtime.exec` without examining it first.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        String script = System.getenv(\"SCRIPTNAME\");\n        if (script != null) {\n            // BAD: The script to be executed is controlled by the user.\n            Runtime.getRuntime().exec(script);\n        }\n    }\n}\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n",
+                  "text": "# Uncontrolled command line\nCode that passes user input directly to `Runtime.exec`, or some other library routine that executes a command, allows the user to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the command to run or library to load. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable libraries or commands cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nThe following example shows code that takes a shell script that can be changed maliciously by a user, and passes it straight to `Runtime.exec` without examining it first.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        String script = System.getenv(\"SCRIPTNAME\");\n        if (script != null) {\n            // BAD: The script to be executed is controlled by the user.\n            Runtime.getRuntime().exec(script);\n        }\n    }\n}\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n"
+                },
+                "id": "java/command-line-injection",
+                "name": "java/command-line-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecTainted.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled command line"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Comparisons between types of different widths in a loop condition can cause the loop to behave unexpectedly."
+                },
+                "help": {
+                  "markdown": "# Comparison of narrow type with wide type in loop condition\nIn a loop condition, comparison of a value of a narrow type with a value of a wide type may always evaluate to `true` if the wider value is sufficiently large (or small). This is because the narrower value may overflow. This can lead to an infinite loop.\n\n\n## Recommendation\nChange the types of the compared values so that the value on the narrower side of the comparison is at least as wide as the value it is being compared with.\n\n\n## Example\nIn this example, `bytesReceived` is compared against `MAXGET` in a `while` loop. However, `bytesReceived` is a `short`, and `MAXGET` is a `long`. Because `MAXGET` is larger than `Short.MAX_VALUE`, the loop condition is always `true`, so the loop never terminates.\n\nThis problem is avoided in the 'GOOD' case because `bytesReceived2` is a `long`, which is as wide as the type of `MAXGET`.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t\n\t\t{\t\t\n\t\t\tint BIGNUM = Integer.MAX_VALUE;\n\t\t\tlong MAXGET = Short.MAX_VALUE + 1;\n\t\t\t\n\t\t\tchar[] buf = new char[BIGNUM];\n\n\t\t\tshort bytesReceived = 0;\n\t\t\t\n\t\t\t// BAD: 'bytesReceived' is compared with a value of wider type.\n\t\t\t// 'bytesReceived' overflows before reaching MAXGET,\n\t\t\t// causing an infinite loop.\n\t\t\twhile (bytesReceived < MAXGET) {\n\t\t\t\tbytesReceived += getFromInput(buf, bytesReceived);\n\t\t\t}\n\t\t}\n\t\t\n\t\t{\n\t\t\tlong bytesReceived2 = 0;\n\t\t\t\n\t\t\t// GOOD: 'bytesReceived2' has a type at least as wide as MAXGET.\n\t\t\twhile (bytesReceived2 < MAXGET) {\n\t\t\t\tbytesReceived2 += getFromInput(buf, bytesReceived2);\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tpublic static int getFromInput(char[] buf, short pos) {\n\t\t// write to buf\n\t\t// ...\n\t\treturn 1;\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n",
+                  "text": "# Comparison of narrow type with wide type in loop condition\nIn a loop condition, comparison of a value of a narrow type with a value of a wide type may always evaluate to `true` if the wider value is sufficiently large (or small). This is because the narrower value may overflow. This can lead to an infinite loop.\n\n\n## Recommendation\nChange the types of the compared values so that the value on the narrower side of the comparison is at least as wide as the value it is being compared with.\n\n\n## Example\nIn this example, `bytesReceived` is compared against `MAXGET` in a `while` loop. However, `bytesReceived` is a `short`, and `MAXGET` is a `long`. Because `MAXGET` is larger than `Short.MAX_VALUE`, the loop condition is always `true`, so the loop never terminates.\n\nThis problem is avoided in the 'GOOD' case because `bytesReceived2` is a `long`, which is as wide as the type of `MAXGET`.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t\n\t\t{\t\t\n\t\t\tint BIGNUM = Integer.MAX_VALUE;\n\t\t\tlong MAXGET = Short.MAX_VALUE + 1;\n\t\t\t\n\t\t\tchar[] buf = new char[BIGNUM];\n\n\t\t\tshort bytesReceived = 0;\n\t\t\t\n\t\t\t// BAD: 'bytesReceived' is compared with a value of wider type.\n\t\t\t// 'bytesReceived' overflows before reaching MAXGET,\n\t\t\t// causing an infinite loop.\n\t\t\twhile (bytesReceived < MAXGET) {\n\t\t\t\tbytesReceived += getFromInput(buf, bytesReceived);\n\t\t\t}\n\t\t}\n\t\t\n\t\t{\n\t\t\tlong bytesReceived2 = 0;\n\t\t\t\n\t\t\t// GOOD: 'bytesReceived2' has a type at least as wide as MAXGET.\n\t\t\twhile (bytesReceived2 < MAXGET) {\n\t\t\t\tbytesReceived2 += getFromInput(buf, bytesReceived2);\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tpublic static int getFromInput(char[] buf, short pos) {\n\t\t// write to buf\n\t\t// ...\n\t\treturn 1;\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n"
+                },
+                "id": "java/comparison-with-wider-type",
+                "name": "java/comparison-with-wider-type",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-197",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Comparison of narrow type with wide type in loop condition"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using concatenated strings in a command line is vulnerable to malicious insertion of special characters in the strings."
+                },
+                "help": {
+                  "markdown": "# Building a command line with string concatenation\nCode that builds a command line by concatenating strings that have been entered by a user allows the user to execute malicious code.\n\n\n## Recommendation\nExecute external commands using an array of strings rather than a single string. By using an array, many possible vulnerabilities in the formatting of the string are avoided.\n\n\n## Example\nIn the following example, `latlonCoords` contains a string that has been entered by a user but not validated by the program. This allows the user to, for example, append an ampersand (&) followed by the command for a malicious program to the end of the string. The ampersand instructs Windows to execute another program. In the block marked 'BAD', `latlonCoords` is passed to `exec` as part of a concatenated string, which allows more than one command to be executed. However, in the block marked 'GOOD', `latlonCoords` is passed as part of an array, which means that `exec` treats it only as an argument.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: user input might include special characters such as ampersands\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(\"cmd.exe /C latlon2utm.exe \" + latlonCoords);\n        }\n\n        // GOOD: use an array of arguments instead of executing a string\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(new String[] {\n                    \"c:\\\\path\\to\\latlon2utm.exe\",\n                    latlonCoords });\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n",
+                  "text": "# Building a command line with string concatenation\nCode that builds a command line by concatenating strings that have been entered by a user allows the user to execute malicious code.\n\n\n## Recommendation\nExecute external commands using an array of strings rather than a single string. By using an array, many possible vulnerabilities in the formatting of the string are avoided.\n\n\n## Example\nIn the following example, `latlonCoords` contains a string that has been entered by a user but not validated by the program. This allows the user to, for example, append an ampersand (&) followed by the command for a malicious program to the end of the string. The ampersand instructs Windows to execute another program. In the block marked 'BAD', `latlonCoords` is passed to `exec` as part of a concatenated string, which allows more than one command to be executed. However, in the block marked 'GOOD', `latlonCoords` is passed as part of an array, which means that `exec` treats it only as an argument.\n\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: user input might include special characters such as ampersands\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(\"cmd.exe /C latlon2utm.exe \" + latlonCoords);\n        }\n\n        // GOOD: use an array of arguments instead of executing a string\n        {\n            String latlonCoords = args[1];\n            Runtime rt = Runtime.getRuntime();\n            Process exec = rt.exec(new String[] {\n                    \"c:\\\\path\\to\\latlon2utm.exe\",\n                    latlonCoords });\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Command Injection](https://www.owasp.org/index.php/Command_Injection).\n* SEI CERT Oracle Coding Standard for Java: [IDS07-J. Sanitize untrusted data passed to the Runtime.exec() method](https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec()+method).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n"
+                },
+                "id": "java/concatenated-command-line",
+                "name": "java/concatenated-command-line",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecUnescaped.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Building a command line with string concatenation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building a SQL or Java Persistence query by concatenating a possibly-untrusted string is vulnerable to insertion of malicious code."
+                },
+                "help": {
+                  "markdown": "# Query built by concatenation with a possibly-untrusted string\nEven when the components of a SQL query are not fully controlled by a user, it is a vulnerability to build the query by directly concatenating those components. Perhaps a separate vulnerability will allow the user to gain control of the component. As well, a user who cannot gain full control of an input might influence it enough to cause the SQL query to fail to run.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating the result of `getCategory` with some string literals. The result of `getCategory` can include special characters, or it might be refactored later so that it may return something that contains special characters.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the result of `getCategory` are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = getCategory();\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = getCategory();\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n",
+                  "text": "# Query built by concatenation with a possibly-untrusted string\nEven when the components of a SQL query are not fully controlled by a user, it is a vulnerability to build the query by directly concatenating those components. Perhaps a separate vulnerability will allow the user to gain control of the component. As well, a user who cannot gain full control of an input might influence it enough to cause the SQL query to fail to run.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating the result of `getCategory` with some string literals. The result of `getCategory` can include special characters, or it might be refactored later so that it may return something that contains special characters.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the result of `getCategory` are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = getCategory();\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = getCategory();\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n"
+                },
+                "id": "java/concatenated-sql-query",
+                "name": "java/concatenated-sql-query",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-089/SqlConcatenated.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-089",
+                    "external/cwe/cwe-564",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Query built by concatenation with a possibly-untrusted string"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Information from an error message propagates to an external user. Error messages can unintentionally reveal implementation details that are useful to an attacker for developing a subsequent exploit."
+                },
+                "help": {
+                  "markdown": "# Information exposure through an error message\nThe error message at the top of a stack trace can include information such as server-side file names and SQL code that the application relies on, allowing an attacker to fine-tune a subsequent injection attack.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the error message entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `getMessage()` method. As such, the user is able to see a detailed error message, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a exception message back to the response\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\tex.getMessage());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the exception message, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex.getMessage);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n",
+                  "text": "# Information exposure through an error message\nThe error message at the top of a stack trace can include information such as server-side file names and SQL code that the application relies on, allowing an attacker to fine-tune a subsequent injection attack.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the error message entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `getMessage()` method. As such, the user is able to see a detailed error message, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a exception message back to the response\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\tex.getMessage());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the exception message, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex.getMessage);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n"
+                },
+                "id": "java/error-message-exposure",
+                "name": "java/error-message-exposure",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-209/SensitiveDataExposureThroughErrorMessage.ql",
+                  "security-severity": "5.4",
+                  "tags": [
+                    "external/cwe/cwe-209",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Information exposure through an error message"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Passing environment variables containing externally controlled strings to a command line is vulnerable to malicious changes to the environment of a subprocess."
+                },
+                "help": {
+                  "markdown": "# Building a command with an injected environment variable\nPassing unvalidated user input into the environment variables of a subprocess can allow an attacker to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the environment variable or its value. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable environment variables cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nIn the following (BAD) example, the environment variable `PATH` is set to the value of the user input `path` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String path = request.getParameter(\"path\");\n\n    Map env = processBuilder.environment();\n    // BAD: path is tainted and being added to the environment\n    env.put(\"PATH\", path);\n\n    processBuilder.start();\n}\n```\nIn the following (BAD) example, an environment variable is set with a name that is derived from the user input `var` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String attr = request.getParameter(\"attribute\");\n    String value = request.getParameter(\"value\");\n\n    Map env = processBuilder.environment();\n    // BAD: attr and value are tainted and being added to the environment\n    env.put(attr, value);\n\n    processBuilder.start();\n}\n```\nIn the following (GOOD) example, the user's input is validated before being used to set the environment variable.\n\n\n```java\nString opt = request.getParameter(\"opt\");\nString value = request.getParameter(\"value\");\n\nMap env = processBuilder.environment();\n\n// GOOD: opt and value are checked before being added to the environment\nif (permittedJavaOptions.contains(opt) && validOption(opt, value)) {\n    env.put(opt, value);\n}\n```\nIn the following (GOOD) example, the user's input is checked and used to determine an environment variable to add.\n\n\n```java\nMap env = builder.environment();\nString debug = request.getParameter(\"debug\");\n\n// GOOD: Checking the value and not tainting the variable added to the environment\nif (debug != null) {\n    env.put(\"PYTHONDEBUG\", \"1\");\n}\n\n```\n\n## References\n* The Java Tutorials: [Environment Variables](https://docs.oracle.com/javase/tutorial/essential/environment/env.html).\n* OWASP: [Command injection](https://owasp.org/www-community/attacks/Command_Injection).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n* Common Weakness Enumeration: [CWE-454](https://cwe.mitre.org/data/definitions/454.html).\n",
+                  "text": "# Building a command with an injected environment variable\nPassing unvalidated user input into the environment variables of a subprocess can allow an attacker to execute malicious code.\n\n\n## Recommendation\nIf possible, use hard-coded string literals to specify the environment variable or its value. Instead of passing the user input directly to the process or library function, examine the user input and then choose among hard-coded string literals.\n\nIf the applicable environment variables cannot be determined at compile time, then add code to verify that the user input string is safe before using it.\n\n\n## Example\nIn the following (BAD) example, the environment variable `PATH` is set to the value of the user input `path` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String path = request.getParameter(\"path\");\n\n    Map env = processBuilder.environment();\n    // BAD: path is tainted and being added to the environment\n    env.put(\"PATH\", path);\n\n    processBuilder.start();\n}\n```\nIn the following (BAD) example, an environment variable is set with a name that is derived from the user input `var` without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String attr = request.getParameter(\"attribute\");\n    String value = request.getParameter(\"value\");\n\n    Map env = processBuilder.environment();\n    // BAD: attr and value are tainted and being added to the environment\n    env.put(attr, value);\n\n    processBuilder.start();\n}\n```\nIn the following (GOOD) example, the user's input is validated before being used to set the environment variable.\n\n\n```java\nString opt = request.getParameter(\"opt\");\nString value = request.getParameter(\"value\");\n\nMap env = processBuilder.environment();\n\n// GOOD: opt and value are checked before being added to the environment\nif (permittedJavaOptions.contains(opt) && validOption(opt, value)) {\n    env.put(opt, value);\n}\n```\nIn the following (GOOD) example, the user's input is checked and used to determine an environment variable to add.\n\n\n```java\nMap env = builder.environment();\nString debug = request.getParameter(\"debug\");\n\n// GOOD: Checking the value and not tainting the variable added to the environment\nif (debug != null) {\n    env.put(\"PYTHONDEBUG\", \"1\");\n}\n\n```\n\n## References\n* The Java Tutorials: [Environment Variables](https://docs.oracle.com/javase/tutorial/essential/environment/env.html).\n* OWASP: [Command injection](https://owasp.org/www-community/attacks/Command_Injection).\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n* Common Weakness Enumeration: [CWE-454](https://cwe.mitre.org/data/definitions/454.html).\n"
+                },
+                "id": "java/exec-tainted-environment",
+                "name": "java/exec-tainted-environment",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecTaintedEnvironment.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "external/cwe/cwe-454",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Building a command with an injected environment variable"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled Groovy script may lead to arbitrary code execution."
+                },
+                "help": {
+                  "markdown": "# Groovy Language injection\nApache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming. If a Groovy script is built using attacker-controlled data, and then evaluated, then it may allow the attacker to achieve RCE.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a Groovy evaluation. If this is not possible, use a sandbox solution. Developers must also take care that Groovy compile-time metaprogramming can also lead to RCE: it is possible to achieve RCE by compiling a Groovy script (see the article \"Abusing Meta Programming for Unauthenticated RCE!\" linked below). Groovy's `SecureASTCustomizer` allows securing source code by controlling what code constructs are permitted. This is typically done when using Groovy for its scripting or domain specific language (DSL) features. The fundamental problem is that Groovy is a dynamic language, yet `SecureASTCustomizer` works by looking at Groovy AST statically. This makes it very easy for an attacker to bypass many of the intended checks (see \\[Groovy SecureASTCustomizer is harmful\\](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/)). Therefore, besides `SecureASTCustomizer`, runtime checks are also necessary before calling Groovy methods (see \\[Improved sandboxing of Groovy scripts\\](https://melix.github.io/blog/2015/03/sandboxing.html)). It is also possible to use a block-list method, excluding unwanted classes from being loaded by the JVM. This method is not always recommended, because block-lists can be bypassed by unexpected values.\n\n\n## Example\nThe following example uses untrusted data to evaluate a Groovy script.\n\n\n```java\npublic class GroovyInjection {\n    void injectionViaClassLoader(HttpServletRequest request) {    \n        String script = request.getParameter(\"script\");\n        final GroovyClassLoader classLoader = new GroovyClassLoader();\n        Class groovy = classLoader.parseClass(script);\n        GroovyObject groovyObj = (GroovyObject) groovy.newInstance();\n    }\n\n    void injectionViaEval(HttpServletRequest request) {\n        String script = request.getParameter(\"script\");\n        Eval.me(script);\n    }\n\n    void injectionViaGroovyShell(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        shell.evaluate(script);\n    }\n\n    void injectionViaGroovyShellGroovyCodeSource(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        GroovyCodeSource gcs = new GroovyCodeSource(script, \"test\", \"Test\");\n        shell.evaluate(gcs);\n    }\n}\n\n\n```\nThe following example uses classloader block-list approach to exclude loading dangerous classes.\n\n\n```java\npublic class SandboxGroovyClassLoader extends ClassLoader {\n    public SandboxGroovyClassLoader(ClassLoader parent) {\n        super(parent);\n    }\n\n    /* override `loadClass` here to prevent loading sensitive classes, such as `java.lang.Runtime`, `java.lang.ProcessBuilder`, `java.lang.System`, etc.  */\n    /* Note we must also block `groovy.transform.ASTTest`, `groovy.lang.GrabConfig` and `org.buildobjects.process.ProcBuilder` to prevent compile-time RCE. */\n\n    static void runWithSandboxGroovyClassLoader() throws Exception {\n        // GOOD: route all class-loading via sand-boxing classloader.\n        SandboxGroovyClassLoader classLoader = new GroovyClassLoader(new SandboxGroovyClassLoader());\n        \n        Class scriptClass = classLoader.parseClass(untrusted.getQueryString());\n        Object scriptInstance = scriptClass.newInstance();\n        Object result = scriptClass.getDeclaredMethod(\"bar\", new Class[]{}).invoke(scriptInstance, new Object[]{});\n    }\n}\n```\n\n## References\n* Orange Tsai: [Abusing Meta Programming for Unauthenticated RCE!](https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html).\n* Cédric Champeau: [Improved sandboxing of Groovy scripts](https://melix.github.io/blog/2015/03/sandboxing.html).\n* Kohsuke Kawaguchi: [Groovy SecureASTCustomizer is harmful](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/).\n* Welk1n: [Groovy Injection payloads](https://github.com/welk1n/exploiting-groovy-in-Java/).\n* Charles Chan: [Secure Groovy Script Execution in a Sandbox](https://levelup.gitconnected.com/secure-groovy-script-execution-in-a-sandbox-ea39f80ee87/).\n* Eugene: [Scripting and sandboxing in a JVM environment](https://stringconcat.com/en/scripting-and-sandboxing/).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Groovy Language injection\nApache Groovy is a powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities. It integrates smoothly with any Java program, and immediately delivers to your application powerful features, including scripting capabilities, Domain-Specific Language authoring, runtime and compile-time meta-programming and functional programming. If a Groovy script is built using attacker-controlled data, and then evaluated, then it may allow the attacker to achieve RCE.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a Groovy evaluation. If this is not possible, use a sandbox solution. Developers must also take care that Groovy compile-time metaprogramming can also lead to RCE: it is possible to achieve RCE by compiling a Groovy script (see the article \"Abusing Meta Programming for Unauthenticated RCE!\" linked below). Groovy's `SecureASTCustomizer` allows securing source code by controlling what code constructs are permitted. This is typically done when using Groovy for its scripting or domain specific language (DSL) features. The fundamental problem is that Groovy is a dynamic language, yet `SecureASTCustomizer` works by looking at Groovy AST statically. This makes it very easy for an attacker to bypass many of the intended checks (see \\[Groovy SecureASTCustomizer is harmful\\](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/)). Therefore, besides `SecureASTCustomizer`, runtime checks are also necessary before calling Groovy methods (see \\[Improved sandboxing of Groovy scripts\\](https://melix.github.io/blog/2015/03/sandboxing.html)). It is also possible to use a block-list method, excluding unwanted classes from being loaded by the JVM. This method is not always recommended, because block-lists can be bypassed by unexpected values.\n\n\n## Example\nThe following example uses untrusted data to evaluate a Groovy script.\n\n\n```java\npublic class GroovyInjection {\n    void injectionViaClassLoader(HttpServletRequest request) {    \n        String script = request.getParameter(\"script\");\n        final GroovyClassLoader classLoader = new GroovyClassLoader();\n        Class groovy = classLoader.parseClass(script);\n        GroovyObject groovyObj = (GroovyObject) groovy.newInstance();\n    }\n\n    void injectionViaEval(HttpServletRequest request) {\n        String script = request.getParameter(\"script\");\n        Eval.me(script);\n    }\n\n    void injectionViaGroovyShell(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        shell.evaluate(script);\n    }\n\n    void injectionViaGroovyShellGroovyCodeSource(HttpServletRequest request) {\n        GroovyShell shell = new GroovyShell();\n        String script = request.getParameter(\"script\");\n        GroovyCodeSource gcs = new GroovyCodeSource(script, \"test\", \"Test\");\n        shell.evaluate(gcs);\n    }\n}\n\n\n```\nThe following example uses classloader block-list approach to exclude loading dangerous classes.\n\n\n```java\npublic class SandboxGroovyClassLoader extends ClassLoader {\n    public SandboxGroovyClassLoader(ClassLoader parent) {\n        super(parent);\n    }\n\n    /* override `loadClass` here to prevent loading sensitive classes, such as `java.lang.Runtime`, `java.lang.ProcessBuilder`, `java.lang.System`, etc.  */\n    /* Note we must also block `groovy.transform.ASTTest`, `groovy.lang.GrabConfig` and `org.buildobjects.process.ProcBuilder` to prevent compile-time RCE. */\n\n    static void runWithSandboxGroovyClassLoader() throws Exception {\n        // GOOD: route all class-loading via sand-boxing classloader.\n        SandboxGroovyClassLoader classLoader = new GroovyClassLoader(new SandboxGroovyClassLoader());\n        \n        Class scriptClass = classLoader.parseClass(untrusted.getQueryString());\n        Object scriptInstance = scriptClass.newInstance();\n        Object result = scriptClass.getDeclaredMethod(\"bar\", new Class[]{}).invoke(scriptInstance, new Object[]{});\n    }\n}\n```\n\n## References\n* Orange Tsai: [Abusing Meta Programming for Unauthenticated RCE!](https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html).\n* Cédric Champeau: [Improved sandboxing of Groovy scripts](https://melix.github.io/blog/2015/03/sandboxing.html).\n* Kohsuke Kawaguchi: [Groovy SecureASTCustomizer is harmful](https://kohsuke.org/2012/04/27/groovy-secureastcustomizer-is-harmful/).\n* Welk1n: [Groovy Injection payloads](https://github.com/welk1n/exploiting-groovy-in-Java/).\n* Charles Chan: [Secure Groovy Script Execution in a Sandbox](https://levelup.gitconnected.com/secure-groovy-script-execution-in-a-sandbox-ea39f80ee87/).\n* Eugene: [Scripting and sandboxing in a JVM environment](https://stringconcat.com/en/scripting-and-sandboxing/).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/groovy-injection",
+                "name": "java/groovy-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/GroovyInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Groovy Language injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a hard-coded credential in a call to a sensitive Java API may compromise security."
+                },
+                "help": {
+                  "markdown": "# Hard-coded credential in API call\nIncluding unencrypted hard-coded authentication credentials in source code is dangerous because the credentials may be easily discovered. For example, the code may be open source, or it may be leaked or accidentally revealed, making the credentials visible to an attacker. This, in turn, might enable them to gain unauthorized access, or to obtain privileged information.\n\n\n## Recommendation\nRemove hard-coded credentials, such as user names, passwords and certificates, from source code. Instead, place them in configuration files, environment variables or other data stores if necessary. If possible, store configuration files including credential data separately from the source code, in a secure location with restricted access.\n\n\n## Example\nThe following code example connects to a database using a hard-coded user name and password:\n\n\n```java\nprivate static final String p = \"123456\"; // hard-coded credential\n\npublic static void main(String[] args) throws SQLException {\n    String url = \"jdbc:mysql://localhost/test\";\n    String u = \"admin\"; // hard-coded credential\n\n    getConn(url, u, p);\n}\n\npublic static void getConn(String url, String v, String q) throws SQLException {\n    DriverManager.getConnection(url, v, q); // sensitive call\n}\n\n```\nInstead, the user name and password could be supplied through environment variables, which can be set externally without hard-coding credentials in the source code.\n\n\n## References\n* OWASP: [Use of hard-coded password](https://www.owasp.org/index.php/Use_of_hard-coded_password).\n* Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n",
+                  "text": "# Hard-coded credential in API call\nIncluding unencrypted hard-coded authentication credentials in source code is dangerous because the credentials may be easily discovered. For example, the code may be open source, or it may be leaked or accidentally revealed, making the credentials visible to an attacker. This, in turn, might enable them to gain unauthorized access, or to obtain privileged information.\n\n\n## Recommendation\nRemove hard-coded credentials, such as user names, passwords and certificates, from source code. Instead, place them in configuration files, environment variables or other data stores if necessary. If possible, store configuration files including credential data separately from the source code, in a secure location with restricted access.\n\n\n## Example\nThe following code example connects to a database using a hard-coded user name and password:\n\n\n```java\nprivate static final String p = \"123456\"; // hard-coded credential\n\npublic static void main(String[] args) throws SQLException {\n    String url = \"jdbc:mysql://localhost/test\";\n    String u = \"admin\"; // hard-coded credential\n\n    getConn(url, u, p);\n}\n\npublic static void getConn(String url, String v, String q) throws SQLException {\n    DriverManager.getConnection(url, v, q); // sensitive call\n}\n\n```\nInstead, the user name and password could be supplied through environment variables, which can be set externally without hard-coding credentials in the source code.\n\n\n## References\n* OWASP: [Use of hard-coded password](https://www.owasp.org/index.php/Use_of_hard-coded_password).\n* Common Weakness Enumeration: [CWE-798](https://cwe.mitre.org/data/definitions/798.html).\n"
+                },
+                "id": "java/hardcoded-credential-api-call",
+                "name": "java/hardcoded-credential-api-call",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-798",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Hard-coded credential in API call"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Writing user input directly to an HTTP header makes code vulnerable to attack by header splitting."
+                },
+                "help": {
+                  "markdown": "# HTTP response splitting\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n",
+                  "text": "# HTTP response splitting\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n"
+                },
+                "id": "java/http-response-splitting",
+                "name": "java/http-response-splitting",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-113/ResponseSplitting.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-113",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "HTTP response splitting"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Compound assignment statements (for example 'intvar += longvar') that implicitly cast a value of a wider type to a narrower type may result in information loss and numeric errors such as overflows."
+                },
+                "help": {
+                  "markdown": "# Implicit narrowing conversion in compound assignment\nCompound assignment statements of the form `x += y` or `x *= y` perform an implicit narrowing conversion if the type of `x` is narrower than the type of `y`. For example, `x += y` is equivalent to `x = (T)(x + y)`, where `T` is the type of `x`. This can result in information loss and numeric errors such as overflows.\n\n\n## Recommendation\nEnsure that the type of the left-hand side of the compound assignment statement is at least as wide as the type of the right-hand side.\n\n\n## Example\nIf `x` is of type `short` and `y` is of type `int`, the expression `x + y` is of type `int`. However, the expression `x += y` is equivalent to `x = (short) (x + y)`. The expression `x + y` is cast to the type of the left-hand side of the assignment: `short`, possibly leading to information loss.\n\nTo avoid implicitly narrowing the type of `x + y`, change the type of `x` to `int`. Then the types of `x` and `x + y` are both `int` and there is no need for an implicit cast.\n\n\n## References\n* J. Bloch and N. Gafter, *Java Puzzlers: Traps, Pitfalls, and Corner Cases*, Puzzle 9. Addison-Wesley, 2005.\n* Java Language Specification: [Compound Assignment Operators](https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.26.2), [Narrowing Primitive Conversion](https://docs.oracle.com/javase/specs/jls/se11/html/jls-5.html#jls-5.1.3).\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-192](https://cwe.mitre.org/data/definitions/192.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n",
+                  "text": "# Implicit narrowing conversion in compound assignment\nCompound assignment statements of the form `x += y` or `x *= y` perform an implicit narrowing conversion if the type of `x` is narrower than the type of `y`. For example, `x += y` is equivalent to `x = (T)(x + y)`, where `T` is the type of `x`. This can result in information loss and numeric errors such as overflows.\n\n\n## Recommendation\nEnsure that the type of the left-hand side of the compound assignment statement is at least as wide as the type of the right-hand side.\n\n\n## Example\nIf `x` is of type `short` and `y` is of type `int`, the expression `x + y` is of type `int`. However, the expression `x += y` is equivalent to `x = (short) (x + y)`. The expression `x + y` is cast to the type of the left-hand side of the assignment: `short`, possibly leading to information loss.\n\nTo avoid implicitly narrowing the type of `x + y`, change the type of `x` to `int`. Then the types of `x` and `x + y` are both `int` and there is no need for an implicit cast.\n\n\n## References\n* J. Bloch and N. Gafter, *Java Puzzlers: Traps, Pitfalls, and Corner Cases*, Puzzle 9. Addison-Wesley, 2005.\n* Java Language Specification: [Compound Assignment Operators](https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.26.2), [Narrowing Primitive Conversion](https://docs.oracle.com/javase/specs/jls/se11/html/jls-5.html#jls-5.1.3).\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-192](https://cwe.mitre.org/data/definitions/192.html).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n"
+                },
+                "id": "java/implicit-cast-in-compound-assignment",
+                "name": "java/implicit-cast-in-compound-assignment",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Likely%20Bugs/Arithmetic/InformationLoss.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-192",
+                    "external/cwe/cwe-197",
+                    "external/cwe/cwe-681",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Implicit narrowing conversion in compound assignment"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A broadcast receiver that does not verify intents it receives may be susceptible to unintended behavior by third party applications sending it explicit intents."
+                },
+                "help": {
+                  "markdown": "# Improper verification of intent by broadcast receiver\nWhen an Android application uses a `BroadcastReceiver` to receive intents, it is also able to receive explicit intents that are sent directly to it, regardless of its filter. Certain intent actions are only able to be sent by the operating system, not third-party applications. However, a `BroadcastReceiver` that is registered to receive system intents is still able to receive intents from a third-party application, so it should check that the intent received has the expected action. Otherwise, a third-party application could impersonate the system this way to cause unintended behavior, such as a denial of service.\n\n\n## Example\nIn the following code, the `ShutdownReceiver` initiates a shutdown procedure upon receiving an intent, without checking that the received action is indeed `ACTION_SHUTDOWN`. This allows third-party applications to send explicit intents to this receiver to cause a denial of service.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n```xml\n\n    \n        \n            \n                \n            \n        \n    \n\n```\n\n## Recommendation\nIn the `onReceive` method of a `BroadcastReceiver`, the action of the received Intent should be checked. The following code demonstrates this.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) {\n            return;\n        }\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-925](https://cwe.mitre.org/data/definitions/925.html).\n",
+                  "text": "# Improper verification of intent by broadcast receiver\nWhen an Android application uses a `BroadcastReceiver` to receive intents, it is also able to receive explicit intents that are sent directly to it, regardless of its filter. Certain intent actions are only able to be sent by the operating system, not third-party applications. However, a `BroadcastReceiver` that is registered to receive system intents is still able to receive intents from a third-party application, so it should check that the intent received has the expected action. Otherwise, a third-party application could impersonate the system this way to cause unintended behavior, such as a denial of service.\n\n\n## Example\nIn the following code, the `ShutdownReceiver` initiates a shutdown procedure upon receiving an intent, without checking that the received action is indeed `ACTION_SHUTDOWN`. This allows third-party applications to send explicit intents to this receiver to cause a denial of service.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n```xml\n\n    \n        \n            \n                \n            \n        \n    \n\n```\n\n## Recommendation\nIn the `onReceive` method of a `BroadcastReceiver`, the action of the received Intent should be checked. The following code demonstrates this.\n\n\n```java\npublic class ShutdownReceiver extends BroadcastReceiver {\n    @Override\n    public void onReceive(final Context context, final Intent intent) {\n        if (!intent.getAction().equals(Intent.ACTION_SHUTDOWN)) {\n            return;\n        }\n        mainActivity.saveLocalData();\n        mainActivity.stopActivity();\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-925](https://cwe.mitre.org/data/definitions/925.html).\n"
+                },
+                "id": "java/improper-intent-verification",
+                "name": "java/improper-intent-verification",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-925/ImproperIntentVerification.ql",
+                  "security-severity": "8.2",
+                  "tags": [
+                    "external/cwe/cwe-925",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Improper verification of intent by broadcast receiver"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using unvalidated external input as the argument to a construction of an array can lead to index out of bound exceptions."
+                },
+                "help": {
+                  "markdown": "# Improper validation of user-provided size used for array construction\nUsing unvalidated input when specifying the size of a newly created array can result in the creation of an array with size zero. If this array is subsequently accessed without further checks, an `ArrayIndexOutOfBoundsException` may be thrown, because there is no guarantee that the array is not empty.\n\nThis problem occurs when user input is used as the size during array initialization, either directly or following one or more calculations. If the user input is unvalidated, it may cause the size of the array to be zero.\n\n\n## Recommendation\nThe size used in the array initialization should be verified to be greater than zero before being used. Alternatively, the array access may be protected by a conditional check that ensures it is only accessed if the index is less than the array size.\n\n\n## Example\nThe following program constructs an array with the size specified by some user input:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    try {\n      // User provided value\n      int numberOfItems = Integer.parseInt(request.getParameter(\"numberOfItems\").trim());\n\n      if (numberOfItems >= 0) {\n        /*\n         * BAD numberOfItems may be zero, which would cause the array indexing operation to\n         * throw an ArrayIndexOutOfBoundsException\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n      if (numberOfItems > 0) {\n        /*\n         * GOOD numberOfItems must be greater than zero, so the indexing succeeds.\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first array construction is protected by a condition that checks if the user input is zero or more. However, if the user provides `0` as the `numberOfItems` parameter, then an empty array is created, and any array access would fail with an `ArrayIndexOutOfBoundsException`.\n\nThe second array construction is protected by a condition that checks if the user input is greater than zero. The array will therefore never be empty, and the following array access will not throw an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n",
+                  "text": "# Improper validation of user-provided size used for array construction\nUsing unvalidated input when specifying the size of a newly created array can result in the creation of an array with size zero. If this array is subsequently accessed without further checks, an `ArrayIndexOutOfBoundsException` may be thrown, because there is no guarantee that the array is not empty.\n\nThis problem occurs when user input is used as the size during array initialization, either directly or following one or more calculations. If the user input is unvalidated, it may cause the size of the array to be zero.\n\n\n## Recommendation\nThe size used in the array initialization should be verified to be greater than zero before being used. Alternatively, the array access may be protected by a conditional check that ensures it is only accessed if the index is less than the array size.\n\n\n## Example\nThe following program constructs an array with the size specified by some user input:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    try {\n      // User provided value\n      int numberOfItems = Integer.parseInt(request.getParameter(\"numberOfItems\").trim());\n\n      if (numberOfItems >= 0) {\n        /*\n         * BAD numberOfItems may be zero, which would cause the array indexing operation to\n         * throw an ArrayIndexOutOfBoundsException\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n      if (numberOfItems > 0) {\n        /*\n         * GOOD numberOfItems must be greater than zero, so the indexing succeeds.\n         */\n        String items = new String[numberOfItems];\n        items[0] = \"Item 1\";\n      }\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first array construction is protected by a condition that checks if the user input is zero or more. However, if the user provides `0` as the `numberOfItems` parameter, then an empty array is created, and any array access would fail with an `ArrayIndexOutOfBoundsException`.\n\nThe second array construction is protected by a condition that checks if the user input is greater than zero. The array will therefore never be empty, and the following array access will not throw an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n"
+                },
+                "id": "java/improper-validation-of-array-construction",
+                "name": "java/improper-validation-of-array-construction",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayConstruction.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-129",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Improper validation of user-provided size used for array construction"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using external input as an index to an array, without proper validation, can lead to index out of bound exceptions."
+                },
+                "help": {
+                  "markdown": "# Improper validation of user-provided array index\nUsing unvalidated input as part of an index into the array can cause the array access to throw an `ArrayIndexOutOfBoundsException`. This is because there is no guarantee that the index provided is within the bounds of the array.\n\nThis problem occurs when user input is used as an array index, either directly or following one or more calculations. If the user input is unsanitized, it may be any value, which could result in either a negative index, or an index which is larger than the size of the array, either of which would result in an `ArrayIndexOutOfBoundsException`.\n\n\n## Recommendation\nThe index used in the array access should be checked against the bounds of the array before being used. The index should be smaller than the array size, and it should not be negative.\n\n\n## Example\nThe following program accesses an element from a fixed size constant array:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    String[] productDescriptions = new String[] { \"Chocolate bar\", \"Fizzy drink\" };\n\n    // User provided value\n    String productID = request.getParameter(\"productID\");\n    try {\n        int productID = Integer.parseInt(userProperty.trim());\n\n        /*\n         * BAD Array is accessed without checking if the user provided value is out of\n         * bounds.\n         */\n        String productDescription = productDescriptions[productID];\n\n        if (productID >= 0 && productID < productDescriptions.length) {\n          // GOOD We have checked that the array index is valid first\n          productDescription = productDescriptions[productID];\n        } else {\n          productDescription = \"No product for that ID\";\n        }\n\n        response.getWriter().write(productDescription);\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first access of the `productDescriptions` array uses the user-provided value as the index without performing any checks. If the user provides a negative value, or a value larger than the size of the array, then an `ArrayIndexOutOfBoundsException` may be thrown.\n\nThe second access of the `productDescriptions` array is contained within a conditional expression that verifies the user-provided value is a valid index into the array. This ensures that the access operation never throws an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n",
+                  "text": "# Improper validation of user-provided array index\nUsing unvalidated input as part of an index into the array can cause the array access to throw an `ArrayIndexOutOfBoundsException`. This is because there is no guarantee that the index provided is within the bounds of the array.\n\nThis problem occurs when user input is used as an array index, either directly or following one or more calculations. If the user input is unsanitized, it may be any value, which could result in either a negative index, or an index which is larger than the size of the array, either of which would result in an `ArrayIndexOutOfBoundsException`.\n\n\n## Recommendation\nThe index used in the array access should be checked against the bounds of the array before being used. The index should be smaller than the array size, and it should not be negative.\n\n\n## Example\nThe following program accesses an element from a fixed size constant array:\n\n\n```java\npublic class ImproperValidationOfArrayIndex extends HttpServlet {\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    String[] productDescriptions = new String[] { \"Chocolate bar\", \"Fizzy drink\" };\n\n    // User provided value\n    String productID = request.getParameter(\"productID\");\n    try {\n        int productID = Integer.parseInt(userProperty.trim());\n\n        /*\n         * BAD Array is accessed without checking if the user provided value is out of\n         * bounds.\n         */\n        String productDescription = productDescriptions[productID];\n\n        if (productID >= 0 && productID < productDescriptions.length) {\n          // GOOD We have checked that the array index is valid first\n          productDescription = productDescriptions[productID];\n        } else {\n          productDescription = \"No product for that ID\";\n        }\n\n        response.getWriter().write(productDescription);\n\n    } catch (NumberFormatException e) { }\n  }\n}\n```\nThe first access of the `productDescriptions` array uses the user-provided value as the index without performing any checks. If the user provides a negative value, or a value larger than the size of the array, then an `ArrayIndexOutOfBoundsException` may be thrown.\n\nThe second access of the `productDescriptions` array is contained within a conditional expression that verifies the user-provided value is a valid index into the array. This ensures that the access operation never throws an `ArrayIndexOutOfBoundsException`.\n\n\n## References\n* Java API Specification: [ArrayIndexOutOfBoundsException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html).\n* Common Weakness Enumeration: [CWE-129](https://cwe.mitre.org/data/definitions/129.html).\n"
+                },
+                "id": "java/improper-validation-of-array-index",
+                "name": "java/improper-validation-of-array-index",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayIndex.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-129",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Improper validation of user-provided array index"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Trusting all certificates allows an attacker to perform a machine-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# Android `WebView` that accepts all certificates\nIf the `onReceivedSslError` method of an Android `WebViewClient` always calls `proceed` on the given `SslErrorHandler`, it trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable application connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable application calls the `onReceivedSslError` method to check whether it should trust the certificate.\n1. The `onReceivedSslError` method of your `WebViewClient` calls `SslErrorHandler.proceed`.\n1. The vulnerable application accepts the certificate and proceeds with the connection since your `WevViewClient` trusted it by proceeding.\n1. The attacker can now read the data your application sends to `https://example.com` and/or alter its replies while the application thinks the connection is secure.\n\n## Recommendation\nDo not use a call `SslerrorHandler.proceed` unconditionally. If you have to use a self-signed certificate, only accept that certificate, not all certificates.\n\n\n## Example\nIn the first (bad) example, the `WebViewClient` trusts all certificates by always calling `SslErrorHandler.proceed`. In the second (good) example, only certificates signed by a certain public key are accepted.\n\n\n```java\nclass Bad extends WebViewClient {\n    // BAD: All certificates are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        handler.proceed(); \n    }\n}\n\nclass Good extends WebViewClient {\n    PublicKey myPubKey = ...;\n\n    // GOOD: Only certificates signed by a certain public key are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        try {\n            X509Certificate cert = error.getCertificate().getX509Certificate();\n            cert.verify(this.myPubKey);\n            handler.proceed();\n        }\n        catch (CertificateException|NoSuchAlgorithmException|InvalidKeyException|NoSuchProviderException|SignatureException e) {\n            handler.cancel();\n        }\n    }    \n}\n```\n\n## References\n* [WebViewClient.onReceivedSslError documentation](https://developer.android.com/reference/android/webkit/WebViewClient?hl=en#onReceivedSslError(android.webkit.WebView,%20android.webkit.SslErrorHandler,%20android.net.http.SslError)).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n",
+                  "text": "# Android `WebView` that accepts all certificates\nIf the `onReceivedSslError` method of an Android `WebViewClient` always calls `proceed` on the given `SslErrorHandler`, it trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable application connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable application calls the `onReceivedSslError` method to check whether it should trust the certificate.\n1. The `onReceivedSslError` method of your `WebViewClient` calls `SslErrorHandler.proceed`.\n1. The vulnerable application accepts the certificate and proceeds with the connection since your `WevViewClient` trusted it by proceeding.\n1. The attacker can now read the data your application sends to `https://example.com` and/or alter its replies while the application thinks the connection is secure.\n\n## Recommendation\nDo not use a call `SslerrorHandler.proceed` unconditionally. If you have to use a self-signed certificate, only accept that certificate, not all certificates.\n\n\n## Example\nIn the first (bad) example, the `WebViewClient` trusts all certificates by always calling `SslErrorHandler.proceed`. In the second (good) example, only certificates signed by a certain public key are accepted.\n\n\n```java\nclass Bad extends WebViewClient {\n    // BAD: All certificates are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        handler.proceed(); \n    }\n}\n\nclass Good extends WebViewClient {\n    PublicKey myPubKey = ...;\n\n    // GOOD: Only certificates signed by a certain public key are trusted.\n    public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { // $hasResult\n        try {\n            X509Certificate cert = error.getCertificate().getX509Certificate();\n            cert.verify(this.myPubKey);\n            handler.proceed();\n        }\n        catch (CertificateException|NoSuchAlgorithmException|InvalidKeyException|NoSuchProviderException|SignatureException e) {\n            handler.cancel();\n        }\n    }    \n}\n```\n\n## References\n* [WebViewClient.onReceivedSslError documentation](https://developer.android.com/reference/android/webkit/WebViewClient?hl=en#onReceivedSslError(android.webkit.WebView,%20android.webkit.SslErrorHandler,%20android.net.http.SslError)).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n"
+                },
+                "id": "java/improper-webview-certificate-validation",
+                "name": "java/improper-webview-certificate-validation",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-295/ImproperWebViewCertificateValidation.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-295",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Android `WebView` that accepts all certificates"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Basic authentication only obfuscates username/password in Base64 encoding, which can be easily recognized and reversed. Transmitting sensitive information without using HTTPS makes the data vulnerable to packet sniffing."
+                },
+                "help": {
+                  "markdown": "# Insecure basic authentication\nBasic authentication only obfuscates usernames and passwords in Base64 encoding, which can be easily recognized and reversed, thus it must not be transmitted over the cleartext HTTP channel. Transmitting sensitive information without using HTTPS makes the data vulnerable to packet sniffing.\n\n\n## Recommendation\nEither use a more secure authentication mechanism like digest authentication or federated authentication, or use the HTTPS communication protocol.\n\n\n## Example\nThe following example shows two ways of using basic authentication. In the 'BAD' case, the credentials are transmitted over HTTP. In the 'GOOD' case, the credentials are transmitted over HTTPS.\n\n\n```java\npublic class InsecureBasicAuth {\n  /**\n   * Test basic authentication with Apache HTTP request.\n   */\n  public void testApacheHttpRequest(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String url = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    url = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    HttpPost post = new HttpPost(url);\n    post.setHeader(\"Accept\", \"application/json\");\n    post.setHeader(\"Content-type\", \"application/json\");\n\n    String authString = username + \":\" + password;\n    byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());\n    String authStringEnc = new String(authEncBytes);\n\n    post.addHeader(\"Authorization\", \"Basic \" + authStringEnc);\n  }\n\n  /**\n   * Test basic authentication with Java HTTP URL connection.\n   */\n  public void testHttpUrlConnection(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String urlStr = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    urlStr = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    String authString = username + \":\" + password;\n    String encoding = Base64.getEncoder().encodeToString(authString.getBytes(\"UTF-8\"));\n    URL url = new URL(urlStr);\n    HttpURLConnection conn = (HttpURLConnection) url.openConnection();\n    conn.setRequestMethod(\"POST\");\n    conn.setDoOutput(true);\n    conn.setRequestProperty(\"Authorization\", \"Basic \" + encoding);\n  }\n}\n\n```\n\n## References\n* SonarSource rule: [Basic authentication should not be used](https://rules.sonarsource.com/java/tag/owasp/RSPEC-2647).\n* Acunetix: [WEB VULNERABILITIES INDEX - Basic authentication over HTTP](https://www.acunetix.com/vulnerabilities/web/basic-authentication-over-http/).\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n",
+                  "text": "# Insecure basic authentication\nBasic authentication only obfuscates usernames and passwords in Base64 encoding, which can be easily recognized and reversed, thus it must not be transmitted over the cleartext HTTP channel. Transmitting sensitive information without using HTTPS makes the data vulnerable to packet sniffing.\n\n\n## Recommendation\nEither use a more secure authentication mechanism like digest authentication or federated authentication, or use the HTTPS communication protocol.\n\n\n## Example\nThe following example shows two ways of using basic authentication. In the 'BAD' case, the credentials are transmitted over HTTP. In the 'GOOD' case, the credentials are transmitted over HTTPS.\n\n\n```java\npublic class InsecureBasicAuth {\n  /**\n   * Test basic authentication with Apache HTTP request.\n   */\n  public void testApacheHttpRequest(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String url = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    url = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    HttpPost post = new HttpPost(url);\n    post.setHeader(\"Accept\", \"application/json\");\n    post.setHeader(\"Content-type\", \"application/json\");\n\n    String authString = username + \":\" + password;\n    byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());\n    String authStringEnc = new String(authEncBytes);\n\n    post.addHeader(\"Authorization\", \"Basic \" + authStringEnc);\n  }\n\n  /**\n   * Test basic authentication with Java HTTP URL connection.\n   */\n  public void testHttpUrlConnection(String username, String password) {\n\n    // BAD: basic authentication over HTTP\n    String urlStr = \"http://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    // GOOD: basic authentication over HTTPS\n    urlStr = \"https://www.example.com/rest/getuser.do?uid=abcdx\";\n\n    String authString = username + \":\" + password;\n    String encoding = Base64.getEncoder().encodeToString(authString.getBytes(\"UTF-8\"));\n    URL url = new URL(urlStr);\n    HttpURLConnection conn = (HttpURLConnection) url.openConnection();\n    conn.setRequestMethod(\"POST\");\n    conn.setDoOutput(true);\n    conn.setRequestProperty(\"Authorization\", \"Basic \" + encoding);\n  }\n}\n\n```\n\n## References\n* SonarSource rule: [Basic authentication should not be used](https://rules.sonarsource.com/java/tag/owasp/RSPEC-2647).\n* Acunetix: [WEB VULNERABILITIES INDEX - Basic authentication over HTTP](https://www.acunetix.com/vulnerabilities/web/basic-authentication-over-http/).\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n"
+                },
+                "id": "java/insecure-basic-auth",
+                "name": "java/insecure-basic-auth",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-522/InsecureBasicAuth.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-319",
+                    "external/cwe/cwe-522",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure basic authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "User-controlled data may be evaluated as a Java EL expression, leading to arbitrary code execution."
+                },
+                "help": {
+                  "markdown": "# Insecure Bean Validation\nCustom error messages for constraint validators support different types of interpolation, including [Java EL expressions](https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-message-interpolation.html#section-interpolation-with-message-expressions). Controlling part of the message template being passed to `ConstraintValidatorContext.buildConstraintViolationWithTemplate()` argument can lead to arbitrary Java code execution. Unfortunately, it is common that validated (and therefore, normally untrusted) bean properties flow into the custom error message.\n\n\n## Recommendation\nThere are different approaches to remediate the issue:\n\n* Do not include validated bean properties in the custom error message.\n* Use parameterized messages instead of string concatenation. For example:\n```\nHibernateConstraintValidatorContext context =\n   constraintValidatorContext.unwrap(HibernateConstraintValidatorContext.class);\ncontext.addMessageParameter(\"foo\", \"bar\");\ncontext.buildConstraintViolationWithTemplate(\"My violation message contains a parameter {foo}\")\n   .addConstraintViolation();\n```\n* Sanitize the validated bean properties to make sure that there are no EL expressions. An example of valid sanitization logic can be found [here](https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/engine/messageinterpolation/util/InterpolationHelper.java#L17).\n* Disable the EL interpolation and only use `ParameterMessageInterpolator`:\n```\nValidator validator = Validation.byDefaultProvider()\n   .configure()\n   .messageInterpolator(new ParameterMessageInterpolator())\n   .buildValidatorFactory()\n   .getValidator();\n```\n* Replace Hibernate Validator with Apache BVal, which in its latest version does not interpolate EL expressions by default. Note that this replacement may not be a simple drop-in replacement.\n\n## Example\nThe following validator could result in arbitrary Java code execution:\n\n\n```java\nimport javax.validation.ConstraintValidator;\nimport javax.validation.ConstraintValidatorContext;\nimport org.hibernate.validator.constraintvalidation.HibernateConstraintValidatorContext;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class TestValidator implements ConstraintValidator {\n\n    public static class InterpolationHelper {\n\n        public static final char BEGIN_TERM = '{';\n        public static final char END_TERM = '}';\n        public static final char EL_DESIGNATOR = '$';\n        public static final char ESCAPE_CHARACTER = '\\\\';\n\n        private static final Pattern ESCAPE_MESSAGE_PARAMETER_PATTERN = Pattern.compile( \"([\\\\\" + ESCAPE_CHARACTER + BEGIN_TERM + END_TERM + EL_DESIGNATOR + \"])\" );\n\n        private InterpolationHelper() {\n        }\n\n        public static String escapeMessageParameter(String messageParameter) {\n            if ( messageParameter == null ) {\n                return null;\n            }\n            return ESCAPE_MESSAGE_PARAMETER_PATTERN.matcher( messageParameter ).replaceAll( Matcher.quoteReplacement( String.valueOf( ESCAPE_CHARACTER ) ) + \"$1\" );\n        }\n\n    }\n\n    @Override\n    public boolean isValid(String object, ConstraintValidatorContext constraintContext) {\n        String value = object + \" is invalid\";\n\n        // Bad: Bean properties (normally user-controlled) are passed directly to `buildConstraintViolationWithTemplate`\n        constraintContext.buildConstraintViolationWithTemplate(value).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are escaped \n        String escaped = InterpolationHelper.escapeMessageParameter(value);\n        constraintContext.buildConstraintViolationWithTemplate(escaped).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are parameterized\n        HibernateConstraintValidatorContext context = constraintContext.unwrap( HibernateConstraintValidatorContext.class );\n        context.addMessageParameter( \"prop\", object );\n        context.buildConstraintViolationWithTemplate( \"{prop} is invalid\").addConstraintViolation();\n        return false;\n    }\n\n}\n\n```\n\n## References\n* Hibernate Reference Guide: [ConstraintValidatorContext](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#_the_code_constraintvalidatorcontext_code).\n* GitHub Security Lab research: [Bean validation](https://securitylab.github.com/research/bean-validation-RCE).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Insecure Bean Validation\nCustom error messages for constraint validators support different types of interpolation, including [Java EL expressions](https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-message-interpolation.html#section-interpolation-with-message-expressions). Controlling part of the message template being passed to `ConstraintValidatorContext.buildConstraintViolationWithTemplate()` argument can lead to arbitrary Java code execution. Unfortunately, it is common that validated (and therefore, normally untrusted) bean properties flow into the custom error message.\n\n\n## Recommendation\nThere are different approaches to remediate the issue:\n\n* Do not include validated bean properties in the custom error message.\n* Use parameterized messages instead of string concatenation. For example:\n```\nHibernateConstraintValidatorContext context =\n   constraintValidatorContext.unwrap(HibernateConstraintValidatorContext.class);\ncontext.addMessageParameter(\"foo\", \"bar\");\ncontext.buildConstraintViolationWithTemplate(\"My violation message contains a parameter {foo}\")\n   .addConstraintViolation();\n```\n* Sanitize the validated bean properties to make sure that there are no EL expressions. An example of valid sanitization logic can be found [here](https://github.com/hibernate/hibernate-validator/blob/master/engine/src/main/java/org/hibernate/validator/internal/engine/messageinterpolation/util/InterpolationHelper.java#L17).\n* Disable the EL interpolation and only use `ParameterMessageInterpolator`:\n```\nValidator validator = Validation.byDefaultProvider()\n   .configure()\n   .messageInterpolator(new ParameterMessageInterpolator())\n   .buildValidatorFactory()\n   .getValidator();\n```\n* Replace Hibernate Validator with Apache BVal, which in its latest version does not interpolate EL expressions by default. Note that this replacement may not be a simple drop-in replacement.\n\n## Example\nThe following validator could result in arbitrary Java code execution:\n\n\n```java\nimport javax.validation.ConstraintValidator;\nimport javax.validation.ConstraintValidatorContext;\nimport org.hibernate.validator.constraintvalidation.HibernateConstraintValidatorContext;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class TestValidator implements ConstraintValidator {\n\n    public static class InterpolationHelper {\n\n        public static final char BEGIN_TERM = '{';\n        public static final char END_TERM = '}';\n        public static final char EL_DESIGNATOR = '$';\n        public static final char ESCAPE_CHARACTER = '\\\\';\n\n        private static final Pattern ESCAPE_MESSAGE_PARAMETER_PATTERN = Pattern.compile( \"([\\\\\" + ESCAPE_CHARACTER + BEGIN_TERM + END_TERM + EL_DESIGNATOR + \"])\" );\n\n        private InterpolationHelper() {\n        }\n\n        public static String escapeMessageParameter(String messageParameter) {\n            if ( messageParameter == null ) {\n                return null;\n            }\n            return ESCAPE_MESSAGE_PARAMETER_PATTERN.matcher( messageParameter ).replaceAll( Matcher.quoteReplacement( String.valueOf( ESCAPE_CHARACTER ) ) + \"$1\" );\n        }\n\n    }\n\n    @Override\n    public boolean isValid(String object, ConstraintValidatorContext constraintContext) {\n        String value = object + \" is invalid\";\n\n        // Bad: Bean properties (normally user-controlled) are passed directly to `buildConstraintViolationWithTemplate`\n        constraintContext.buildConstraintViolationWithTemplate(value).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are escaped \n        String escaped = InterpolationHelper.escapeMessageParameter(value);\n        constraintContext.buildConstraintViolationWithTemplate(escaped).addConstraintViolation().disableDefaultConstraintViolation();\n\n        // Good: Bean properties (normally user-controlled) are parameterized\n        HibernateConstraintValidatorContext context = constraintContext.unwrap( HibernateConstraintValidatorContext.class );\n        context.addMessageParameter( \"prop\", object );\n        context.buildConstraintViolationWithTemplate( \"{prop} is invalid\").addConstraintViolation();\n        return false;\n    }\n\n}\n\n```\n\n## References\n* Hibernate Reference Guide: [ConstraintValidatorContext](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#_the_code_constraintvalidatorcontext_code).\n* GitHub Security Lab research: [Bean validation](https://securitylab.github.com/research/bean-validation-RCE).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/insecure-bean-validation",
+                "name": "java/insecure-bean-validation",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure Bean Validation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Insecure cookies may be sent in cleartext, which makes them vulnerable to interception."
+                },
+                "help": {
+                  "markdown": "# Failure to use secure cookies\nFailing to set the 'secure' flag on a cookie can cause it to be sent in cleartext. This makes it easier for an attacker to intercept.\n\n\n## Recommendation\nAlways use `setSecure` to set the 'secure' flag on a cookie before adding it to an `HttpServletResponse`.\n\n\n## Example\nThis example shows two ways of adding a cookie to an `HttpServletResponse`. The first way leaves out the setting of the 'secure' flag; the second way includes the setting of the flag.\n\n\n```java\npublic static void test(HttpServletRequest request, HttpServletResponse response) {\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// BAD: 'secure' flag not set\n\t\tresponse.addCookie(cookie);\n\t}\n\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// GOOD: set 'secure' flag\n\t\tcookie.setSecure(true);\n\t\tresponse.addCookie(cookie);\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* Java Platform, Enterprise Edition (Java EE) 7, API Specification: [Class Cookie](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html).\n* Common Weakness Enumeration: [CWE-614](https://cwe.mitre.org/data/definitions/614.html).\n",
+                  "text": "# Failure to use secure cookies\nFailing to set the 'secure' flag on a cookie can cause it to be sent in cleartext. This makes it easier for an attacker to intercept.\n\n\n## Recommendation\nAlways use `setSecure` to set the 'secure' flag on a cookie before adding it to an `HttpServletResponse`.\n\n\n## Example\nThis example shows two ways of adding a cookie to an `HttpServletResponse`. The first way leaves out the setting of the 'secure' flag; the second way includes the setting of the flag.\n\n\n```java\npublic static void test(HttpServletRequest request, HttpServletResponse response) {\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// BAD: 'secure' flag not set\n\t\tresponse.addCookie(cookie);\n\t}\n\n\t{\n\t\tCookie cookie = new Cookie(\"secret\", \"fakesecret\");\n\t\t\n\t\t// GOOD: set 'secure' flag\n\t\tcookie.setSecure(true);\n\t\tresponse.addCookie(cookie);\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SER03-J. Do not serialize unencrypted, sensitive data](https://wiki.sei.cmu.edu/confluence/display/java/SER03-J.+Do+not+serialize+unencrypted+sensitive+data).\n* Java Platform, Enterprise Edition (Java EE) 7, API Specification: [Class Cookie](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html).\n* Common Weakness Enumeration: [CWE-614](https://cwe.mitre.org/data/definitions/614.html).\n"
+                },
+                "id": "java/insecure-cookie",
+                "name": "java/insecure-cookie",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-614/InsecureCookie.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "external/cwe/cwe-614",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Failure to use secure cookies"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "LDAP authentication with credentials sent in cleartext makes sensitive information vulnerable to remote attackers"
+                },
+                "help": {
+                  "markdown": "# Insecure LDAP authentication\nWhen using the Java LDAP API to perform LDAPv3-style extended operations and controls, a context with connection properties including user credentials is started. Transmission of LDAP credentials in cleartext allows remote attackers to obtain sensitive information by sniffing the network.\n\n\n## Recommendation\nUse the `ldaps://` protocol to send credentials through SSL or use SASL authentication.\n\n\n## Example\nIn the following (bad) example, a `ldap://` URL is used and credentials will be sent in plaintext.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldaps://` URL is used so credentials will be encrypted with SSL.\n\n\n```java\nString ldapUrl = \"ldaps://ad.your-server.com:636\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldap://` URL is used, but SASL authentication is enabled so that the credentials will be encrypted.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"DIGEST-MD5 GSSAPI\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\n\n## References\n* Oracle: [LDAP and LDAPS URLs](https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html)\n* Oracle: [Simple authentication](https://docs.oracle.com/javase/tutorial/jndi/ldap/simple.html)\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n",
+                  "text": "# Insecure LDAP authentication\nWhen using the Java LDAP API to perform LDAPv3-style extended operations and controls, a context with connection properties including user credentials is started. Transmission of LDAP credentials in cleartext allows remote attackers to obtain sensitive information by sniffing the network.\n\n\n## Recommendation\nUse the `ldaps://` protocol to send credentials through SSL or use SASL authentication.\n\n\n## Example\nIn the following (bad) example, a `ldap://` URL is used and credentials will be sent in plaintext.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldaps://` URL is used so credentials will be encrypted with SSL.\n\n\n```java\nString ldapUrl = \"ldaps://ad.your-server.com:636\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"simple\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\nIn the following (good) example, a `ldap://` URL is used, but SASL authentication is enabled so that the credentials will be encrypted.\n\n\n```java\nString ldapUrl = \"ldap://ad.your-server.com:389\";\nHashtable environment = new Hashtable();\nenvironment.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.ldap.LdapCtxFactory\");\nenvironment.put(Context.PROVIDER_URL, ldapUrl);\nenvironment.put(Context.REFERRAL, \"follow\");\nenvironment.put(Context.SECURITY_AUTHENTICATION, \"DIGEST-MD5 GSSAPI\");\nenvironment.put(Context.SECURITY_PRINCIPAL, ldapUserName);\nenvironment.put(Context.SECURITY_CREDENTIALS, password);\nDirContext dirContext = new InitialDirContext(environment);\n\n```\n\n## References\n* Oracle: [LDAP and LDAPS URLs](https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html)\n* Oracle: [Simple authentication](https://docs.oracle.com/javase/tutorial/jndi/ldap/simple.html)\n* Common Weakness Enumeration: [CWE-522](https://cwe.mitre.org/data/definitions/522.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n"
+                },
+                "id": "java/insecure-ldap-auth",
+                "name": "java/insecure-ldap-auth",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-522/InsecureLdapAuth.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-319",
+                    "external/cwe/cwe-522",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure LDAP authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using a cryptographically Insecure pseudo-random number generator to generate a security-sensitive value may allow an attacker to predict what value will be generated."
+                },
+                "help": {
+                  "markdown": "# Insecure randomness\nIf you use a cryptographically weak pseudo-random number generator to generate security-sensitive values, such as passwords, attackers can more easily predict those values.\n\nPseudo-random number generators generate a sequence of numbers that only approximates the properties of random numbers. The sequence is not truly random because it is completely determined by a relatively small set of initial values (the seed). If the random number generator is cryptographically weak, then this sequence may be easily predictable through outside observations.\n\n\n## Recommendation\nThe `java.util.Random` random number generator is not cryptographically secure. Use a secure random number generator such as `java.security.SecureRandom` instead.\n\nUse a cryptographically secure pseudo-random number generator if the output is to be used in a security-sensitive context. As a general rule, a value should be considered \"security-sensitive\" if predicting it would allow the attacker to perform an action that they would otherwise be unable to perform. For example, if an attacker could predict the random password generated for a new user, they would be able to log in as that new user.\n\n\n## Example\nThe following examples show different ways of generating a cookie with a random value.\n\nIn the first (BAD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`Random`) is not cryptographically secure, so it may be possible for an attacker to predict the generated cookie.\n\n\n```java\nRandom r = new Random();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\nIn the second (GOOD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`SecureRandom`) is cryptographically secure, so it is not possible for an attacker to predict the generated cookie.\n\n\n```java\nSecureRandom r = new SecureRandom();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\n\n## References\n* Wikipedia: [Pseudo-random number generator](http://en.wikipedia.org/wiki/Pseudorandom_number_generator).\n* Java Docs: [Random](http://docs.oracle.com/javase/8/docs/api/java/util/Random.html).\n* Java Docs: [SecureRandom](http://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html).\n* Common Weakness Enumeration: [CWE-330](https://cwe.mitre.org/data/definitions/330.html).\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n",
+                  "text": "# Insecure randomness\nIf you use a cryptographically weak pseudo-random number generator to generate security-sensitive values, such as passwords, attackers can more easily predict those values.\n\nPseudo-random number generators generate a sequence of numbers that only approximates the properties of random numbers. The sequence is not truly random because it is completely determined by a relatively small set of initial values (the seed). If the random number generator is cryptographically weak, then this sequence may be easily predictable through outside observations.\n\n\n## Recommendation\nThe `java.util.Random` random number generator is not cryptographically secure. Use a secure random number generator such as `java.security.SecureRandom` instead.\n\nUse a cryptographically secure pseudo-random number generator if the output is to be used in a security-sensitive context. As a general rule, a value should be considered \"security-sensitive\" if predicting it would allow the attacker to perform an action that they would otherwise be unable to perform. For example, if an attacker could predict the random password generated for a new user, they would be able to log in as that new user.\n\n\n## Example\nThe following examples show different ways of generating a cookie with a random value.\n\nIn the first (BAD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`Random`) is not cryptographically secure, so it may be possible for an attacker to predict the generated cookie.\n\n\n```java\nRandom r = new Random();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\nIn the second (GOOD) case, we generate a fresh cookie by appending a random integer to the end of a static string. The random number generator used (`SecureRandom`) is cryptographically secure, so it is not possible for an attacker to predict the generated cookie.\n\n\n```java\nSecureRandom r = new SecureRandom();\n\nbyte[] bytes = new byte[16];\nr.nextBytes(bytes);\n\nString cookieValue = encode(bytes);\n\nCookie cookie = new Cookie(\"name\", cookieValue);\nresponse.addCookie(cookie);\n\n```\n\n## References\n* Wikipedia: [Pseudo-random number generator](http://en.wikipedia.org/wiki/Pseudorandom_number_generator).\n* Java Docs: [Random](http://docs.oracle.com/javase/8/docs/api/java/util/Random.html).\n* Java Docs: [SecureRandom](http://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html).\n* Common Weakness Enumeration: [CWE-330](https://cwe.mitre.org/data/definitions/330.html).\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n"
+                },
+                "id": "java/insecure-randomness",
+                "name": "java/insecure-randomness",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-330/InsecureRandomness.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-330",
+                    "external/cwe/cwe-338",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure randomness"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Configuring a Java application to use authenticated mail session over SSL without certificate validation makes the session susceptible to a man-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# Insecure JavaMail SSL Configuration\nJavaMail is commonly used in Java applications to send emails. There are popular third-party libraries like Apache Commons Email which are built on JavaMail and facilitate integration. Authenticated mail sessions require user credentials and mail sessions can require SSL/TLS authentication. It is a common security vulnerability that host-specific certificate data is not validated or is incorrectly validated. Failing to validate the certificate makes the SSL session susceptible to a man-in-the-middle attack.\n\nThis query checks whether the SSL certificate is validated when credentials are used and SSL is enabled in email communications.\n\nThe query has code for both plain JavaMail invocation and mailing through Apache SimpleMail to make it more comprehensive.\n\n\n## Recommendation\nValidate SSL certificate when sensitive information is sent in email communications.\n\n\n## Example\nThe following two examples show two ways of configuring secure emails through JavaMail or Apache SimpleMail. In the 'BAD' case, credentials are sent in an SSL session without certificate validation. In the 'GOOD' case, the certificate is validated.\n\n\n```java\nimport java.util.Properties;\n\nimport javax.activation.DataSource;\nimport javax.mail.Authenticator;\nimport javax.mail.Message;\nimport javax.mail.MessagingException;\nimport javax.mail.PasswordAuthentication;\nimport javax.mail.Session;\n\nimport org.apache.logging.log4j.util.PropertiesUtil;\n\nclass JavaMail {\n    public static void main(String[] args) {\n      // BAD: Don't have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n\n      // GOOD: Have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t\tproperties.put(\"mail.smtp.ssl.checkserveridentity\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n    }\n}\n```\n\n```java\nimport org.apache.commons.mail.DefaultAuthenticator;\nimport org.apache.commons.mail.Email;\nimport org.apache.commons.mail.EmailException;\nimport org.apache.commons.mail.SimpleEmail;\n\nclass SimpleMail {\n    public static void main(String[] args) throws EmailException {\n      // BAD: Don't have setSSLCheckServerIdentity set or set as false    \n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n        \n        //email.setSSLCheckServerIdentity(false);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n\n      // GOOD: Have setSSLCheckServerIdentity set to true\n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n\n        email.setSSLCheckServerIdentity(true);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n    }\n}\n```\n\n## References\n* Jakarta Mail: [SSL Notes](https://eclipse-ee4j.github.io/mail/docs/SSLNOTES.txt).\n* Apache Commons: [Email security](https://commons.apache.org/proper/commons-email/userguide.html#Security).\n* Log4j2: [Add support for specifying an SSL configuration for SmtpAppender (CVE-2020-9488)](https://issues.apache.org/jira/browse/LOG4J2-2819).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n",
+                  "text": "# Insecure JavaMail SSL Configuration\nJavaMail is commonly used in Java applications to send emails. There are popular third-party libraries like Apache Commons Email which are built on JavaMail and facilitate integration. Authenticated mail sessions require user credentials and mail sessions can require SSL/TLS authentication. It is a common security vulnerability that host-specific certificate data is not validated or is incorrectly validated. Failing to validate the certificate makes the SSL session susceptible to a man-in-the-middle attack.\n\nThis query checks whether the SSL certificate is validated when credentials are used and SSL is enabled in email communications.\n\nThe query has code for both plain JavaMail invocation and mailing through Apache SimpleMail to make it more comprehensive.\n\n\n## Recommendation\nValidate SSL certificate when sensitive information is sent in email communications.\n\n\n## Example\nThe following two examples show two ways of configuring secure emails through JavaMail or Apache SimpleMail. In the 'BAD' case, credentials are sent in an SSL session without certificate validation. In the 'GOOD' case, the certificate is validated.\n\n\n```java\nimport java.util.Properties;\n\nimport javax.activation.DataSource;\nimport javax.mail.Authenticator;\nimport javax.mail.Message;\nimport javax.mail.MessagingException;\nimport javax.mail.PasswordAuthentication;\nimport javax.mail.Session;\n\nimport org.apache.logging.log4j.util.PropertiesUtil;\n\nclass JavaMail {\n    public static void main(String[] args) {\n      // BAD: Don't have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n\n      // GOOD: Have server certificate check\n      {\n\t\tfinal Properties properties = PropertiesUtil.getSystemProperties();\n\t\tproperties.put(\"mail.transport.protocol\", \"protocol\");\n\t\tproperties.put(\"mail.smtp.host\", \"hostname\");\n\t\tproperties.put(\"mail.smtp.socketFactory.class\", \"classname\");\n\n\t\tfinal Authenticator authenticator = buildAuthenticator(\"username\", \"password\");\n\t\tif (null != authenticator) {\n\t\t\tproperties.put(\"mail.smtp.auth\", \"true\");\n\t\t\tproperties.put(\"mail.smtp.ssl.checkserveridentity\", \"true\");\n\t\t}\n\t\tfinal Session session = Session.getInstance(properties, authenticator);\n      }\n    }\n}\n```\n\n```java\nimport org.apache.commons.mail.DefaultAuthenticator;\nimport org.apache.commons.mail.Email;\nimport org.apache.commons.mail.EmailException;\nimport org.apache.commons.mail.SimpleEmail;\n\nclass SimpleMail {\n    public static void main(String[] args) throws EmailException {\n      // BAD: Don't have setSSLCheckServerIdentity set or set as false    \n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n        \n        //email.setSSLCheckServerIdentity(false);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n\n      // GOOD: Have setSSLCheckServerIdentity set to true\n      {\n        Email email = new SimpleEmail();\n        email.setHostName(\"hostName\");\n        email.setSmtpPort(25);\n        email.setAuthenticator(new DefaultAuthenticator(\"username\", \"password\"));\n        email.setSSLOnConnect(true);\n\n        email.setSSLCheckServerIdentity(true);\n        email.setFrom(\"fromAddress\");\n        email.setSubject(\"subject\");\n        email.setMsg(\"body\");\n        email.addTo(\"toAddress\");\n        email.send();\n      }\n    }\n}\n```\n\n## References\n* Jakarta Mail: [SSL Notes](https://eclipse-ee4j.github.io/mail/docs/SSLNOTES.txt).\n* Apache Commons: [Email security](https://commons.apache.org/proper/commons-email/userguide.html#Security).\n* Log4j2: [Add support for specifying an SSL configuration for SmtpAppender (CVE-2020-9488)](https://issues.apache.org/jira/browse/LOG4J2-2819).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n"
+                },
+                "id": "java/insecure-smtp-ssl",
+                "name": "java/insecure-smtp-ssl",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-297/InsecureJavaMail.ql",
+                  "security-severity": "5.9",
+                  "tags": [
+                    "external/cwe/cwe-297",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insecure JavaMail SSL Configuration"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Trusting all certificates allows an attacker to perform a machine-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# `TrustManager` that accepts all certificates\nIf the `checkServerTrusted` method of a `TrustManager` never throws a `CertificateException`, it trusts every certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable program calls the `checkServerTrusted` method to check whether it should trust the certificate.\n1. The `checkServerTrusted` method of your `TrustManager` does not throw a `CertificateException`.\n1. The vulnerable program accepts the certificate and proceeds with the connection since your `TrustManager` implicitly trusted it by not throwing an exception.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use a custom `TrustManager` that trusts any certificate. If you have to use a self-signed certificate, don't trust every certificate, but instead only trust this specific certificate. See below for an example of how to do this.\n\n\n## Example\nIn the first (bad) example, the `TrustManager` never throws a `CertificateException` and therefore implicitly trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack. In the second (good) example, the self-signed certificate that should be trusted is loaded into a `KeyStore`. This explicitly defines the certificate as trusted and there is no need to create a custom `TrustManager`.\n\n\n```java\npublic static void main(String[] args) throws Exception {\n    {\n        class InsecureTrustManager implements X509TrustManager {\n            @Override\n            public X509Certificate[] getAcceptedIssuers() {\n                return null;\n            }\n\n            @Override\n            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n                // BAD: Does not verify the certificate chain, allowing any certificate.\n            }\n\n            @Override\n            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n\n            }\n        }\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        TrustManager[] trustManager = new TrustManager[] { new InsecureTrustManager() };\n        context.init(null, trustManager, null);\n    }\n    {\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        File certificateFile = new File(\"path/to/self-signed-certificate\");\n        // Create a `KeyStore` with default type\n        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());\n        // `keyStore` is initially empty\n        keyStore.load(null, null);\n        X509Certificate generatedCertificate;\n        try (InputStream cert = new FileInputStream(certificateFile)) {\n            generatedCertificate = (X509Certificate) CertificateFactory.getInstance(\"X509\")\n                    .generateCertificate(cert);\n        }\n        // Add the self-signed certificate to the key store\n        keyStore.setCertificateEntry(certificateFile.getName(), generatedCertificate);\n        // Get default `TrustManagerFactory`\n        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\n        // Use it with our key store that trusts our self-signed certificate\n        tmf.init(keyStore);\n        TrustManager[] trustManagers = tmf.getTrustManagers();\n        context.init(null, trustManagers, null);\n        // GOOD, we are not using a custom `TrustManager` but instead have\n        // added the self-signed certificate we want to trust to the key\n        // store. Note, the `trustManagers` will **only** trust this one\n        // certificate.\n        \n        URL url = new URL(\"https://self-signed.badssl.com/\");\n        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();\n        conn.setSSLSocketFactory(context.getSocketFactory());\n    }\n}\n\n```\n\n## References\n* Android Developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n",
+                  "text": "# `TrustManager` that accepts all certificates\nIf the `checkServerTrusted` method of a `TrustManager` never throws a `CertificateException`, it trusts every certificate. This allows an attacker to perform a machine-in-the-middle attack against the application, therefore breaking any security Transport Layer Security (TLS) gives.\n\nAn attack might look like this:\n\n1. The vulnerable program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents a valid, self-signed certificate for `https://example.com`.\n1. The vulnerable program calls the `checkServerTrusted` method to check whether it should trust the certificate.\n1. The `checkServerTrusted` method of your `TrustManager` does not throw a `CertificateException`.\n1. The vulnerable program accepts the certificate and proceeds with the connection since your `TrustManager` implicitly trusted it by not throwing an exception.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use a custom `TrustManager` that trusts any certificate. If you have to use a self-signed certificate, don't trust every certificate, but instead only trust this specific certificate. See below for an example of how to do this.\n\n\n## Example\nIn the first (bad) example, the `TrustManager` never throws a `CertificateException` and therefore implicitly trusts any certificate. This allows an attacker to perform a machine-in-the-middle attack. In the second (good) example, the self-signed certificate that should be trusted is loaded into a `KeyStore`. This explicitly defines the certificate as trusted and there is no need to create a custom `TrustManager`.\n\n\n```java\npublic static void main(String[] args) throws Exception {\n    {\n        class InsecureTrustManager implements X509TrustManager {\n            @Override\n            public X509Certificate[] getAcceptedIssuers() {\n                return null;\n            }\n\n            @Override\n            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n                // BAD: Does not verify the certificate chain, allowing any certificate.\n            }\n\n            @Override\n            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {\n\n            }\n        }\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        TrustManager[] trustManager = new TrustManager[] { new InsecureTrustManager() };\n        context.init(null, trustManager, null);\n    }\n    {\n        SSLContext context = SSLContext.getInstance(\"TLS\");\n        File certificateFile = new File(\"path/to/self-signed-certificate\");\n        // Create a `KeyStore` with default type\n        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());\n        // `keyStore` is initially empty\n        keyStore.load(null, null);\n        X509Certificate generatedCertificate;\n        try (InputStream cert = new FileInputStream(certificateFile)) {\n            generatedCertificate = (X509Certificate) CertificateFactory.getInstance(\"X509\")\n                    .generateCertificate(cert);\n        }\n        // Add the self-signed certificate to the key store\n        keyStore.setCertificateEntry(certificateFile.getName(), generatedCertificate);\n        // Get default `TrustManagerFactory`\n        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());\n        // Use it with our key store that trusts our self-signed certificate\n        tmf.init(keyStore);\n        TrustManager[] trustManagers = tmf.getTrustManagers();\n        context.init(null, trustManagers, null);\n        // GOOD, we are not using a custom `TrustManager` but instead have\n        // added the self-signed certificate we want to trust to the key\n        // store. Note, the `trustManagers` will **only** trust this one\n        // certificate.\n        \n        URL url = new URL(\"https://self-signed.badssl.com/\");\n        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();\n        conn.setSSLSocketFactory(context.getSocketFactory());\n    }\n}\n\n```\n\n## References\n* Android Developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Common Weakness Enumeration: [CWE-295](https://cwe.mitre.org/data/definitions/295.html).\n"
+                },
+                "id": "java/insecure-trustmanager",
+                "name": "java/insecure-trustmanager",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-295/InsecureTrustManager.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-295",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "`TrustManager` that accepts all certificates"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using cryptographic algorithms with too small a key size can allow an attacker to compromise security."
+                },
+                "help": {
+                  "markdown": "# Use of a cryptographic algorithm with insufficient key size\nModern encryption relies on the computational infeasibility of breaking a cipher and decoding its message without the key. As computational power increases, the ability to break ciphers grows, and key sizes need to become larger as a result. Cryptographic algorithms that use too small of a key size are vulnerable to brute force attacks, which can reveal sensitive data.\n\n\n## Recommendation\nUse a key of the recommended size or larger. The key size should be at least 128 bits for AES encryption, 256 bits for elliptic-curve cryptography (ECC), and 2048 bits for RSA, DSA, or DH encryption.\n\n\n## Example\nThe following code uses cryptographic algorithms with insufficient key sizes.\n\n\n```java\n    KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance(\"RSA\");\n    keyPairGen1.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance(\"DSA\");\n    keyPairGen2.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance(\"DH\");\n    keyPairGen3.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance(\"EC\");\n    ECGenParameterSpec ecSpec = new ECGenParameterSpec(\"secp112r1\"); // BAD: Key size is less than 256\n    keyPairGen4.initialize(ecSpec);\n\n    KeyGenerator keyGen = KeyGenerator.getInstance(\"AES\");\n    keyGen.init(64); // BAD: Key size is less than 128\n\n```\nTo fix the code, change the key sizes to be the recommended size or larger for each algorithm.\n\n\n## References\n* Wikipedia: [Key size](http://en.wikipedia.org/wiki/Key_size).\n* Wikipedia: [Strong cryptography](https://en.wikipedia.org/wiki/Strong_cryptography).\n* OWASP: [ Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html#algorithms).\n* OWASP: [ Testing for Weak Encryption](https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/09-Testing_for_Weak_Cryptography/04-Testing_for_Weak_Encryption).\n* NIST: [ Transitioning the Use of Cryptographic Algorithms and Key Lengths](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf).\n* Common Weakness Enumeration: [CWE-326](https://cwe.mitre.org/data/definitions/326.html).\n",
+                  "text": "# Use of a cryptographic algorithm with insufficient key size\nModern encryption relies on the computational infeasibility of breaking a cipher and decoding its message without the key. As computational power increases, the ability to break ciphers grows, and key sizes need to become larger as a result. Cryptographic algorithms that use too small of a key size are vulnerable to brute force attacks, which can reveal sensitive data.\n\n\n## Recommendation\nUse a key of the recommended size or larger. The key size should be at least 128 bits for AES encryption, 256 bits for elliptic-curve cryptography (ECC), and 2048 bits for RSA, DSA, or DH encryption.\n\n\n## Example\nThe following code uses cryptographic algorithms with insufficient key sizes.\n\n\n```java\n    KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance(\"RSA\");\n    keyPairGen1.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance(\"DSA\");\n    keyPairGen2.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance(\"DH\");\n    keyPairGen3.initialize(1024); // BAD: Key size is less than 2048\n\n    KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance(\"EC\");\n    ECGenParameterSpec ecSpec = new ECGenParameterSpec(\"secp112r1\"); // BAD: Key size is less than 256\n    keyPairGen4.initialize(ecSpec);\n\n    KeyGenerator keyGen = KeyGenerator.getInstance(\"AES\");\n    keyGen.init(64); // BAD: Key size is less than 128\n\n```\nTo fix the code, change the key sizes to be the recommended size or larger for each algorithm.\n\n\n## References\n* Wikipedia: [Key size](http://en.wikipedia.org/wiki/Key_size).\n* Wikipedia: [Strong cryptography](https://en.wikipedia.org/wiki/Strong_cryptography).\n* OWASP: [ Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html#algorithms).\n* OWASP: [ Testing for Weak Encryption](https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/09-Testing_for_Weak_Cryptography/04-Testing_for_Weak_Encryption).\n* NIST: [ Transitioning the Use of Cryptographic Algorithms and Key Lengths](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf).\n* Common Weakness Enumeration: [CWE-326](https://cwe.mitre.org/data/definitions/326.html).\n"
+                },
+                "id": "java/insufficient-key-size",
+                "name": "java/insufficient-key-size",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-326/InsufficientKeySize.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-326",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a cryptographic algorithm with insufficient key size"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled JEXL expression may lead to arbitrary code execution."
+                },
+                "help": {
+                  "markdown": "# Expression language injection (JEXL)\nJava EXpression Language (JEXL) is a simple expression language provided by the Apache Commons JEXL library. The syntax is close to a mix of ECMAScript and shell-script. The language allows invocation of methods available in the JVM. If a JEXL expression is built using attacker-controlled data, and then evaluated, then it may allow the attacker to run arbitrary code.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a JEXL expression. If it is not possible, JEXL expressions should be run in a sandbox that allows accessing only explicitly allowed classes.\n\n\n## Example\nThe following example uses untrusted data to build and run a JEXL expression.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    String input = reader.readLine();\n    JexlEngine jexl = new JexlBuilder().create();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows how an untrusted JEXL expression can be run in a sandbox that allows accessing only methods in the `java.lang.Math` class. The sandbox is implemented using `JexlSandbox` class that is provided by Apache Commons JEXL 3.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlSandbox onlyMath = new JexlSandbox(false);\n    onlyMath.white(\"java.lang.Math\");\n    JexlEngine jexl = new JexlBuilder().sandbox(onlyMath).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows another way how a sandbox can be implemented. It uses a custom implementation of `JexlUberspect` that checks if callees are instances of allowed classes.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlUberspect sandbox = new JexlUberspectSandbox();\n    JexlEngine jexl = new JexlBuilder().uberspect(sandbox).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n\n  private static class JexlUberspectSandbox implements JexlUberspect {\n\n    private static final List ALLOWED_CLASSES =\n              Arrays.asList(\"java.lang.Math\", \"java.util.Random\");\n\n    private final JexlUberspect uberspect = new JexlBuilder().create().getUberspect();\n\n    private void checkAccess(Object obj) {\n      if (!ALLOWED_CLASSES.contains(obj.getClass().getCanonicalName())) {\n        throw new AccessControlException(\"Not allowed\");\n      }\n    }\n\n    @Override\n    public JexlMethod getMethod(Object obj, String method, Object... args) {\n      checkAccess(obj);\n      return uberspect.getMethod(obj, method, args);\n    }\n\n    @Override\n    public List getResolvers(JexlOperator op, Object obj) {\n      checkAccess(obj);\n      return uberspect.getResolvers(op, obj);\n    }\n\n    @Override\n    public void setClassLoader(ClassLoader loader) {\n      uberspect.setClassLoader(loader);\n    }\n\n    @Override\n    public int getVersion() {\n      return uberspect.getVersion();\n    }\n\n    @Override\n    public JexlMethod getConstructor(Object obj, Object... args) {\n      checkAccess(obj);\n      return uberspect.getConstructor(obj, args);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(obj, identifier);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(List resolvers, Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(resolvers, obj, identifier);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(obj, identifier, arg);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(List resolvers, Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(resolvers, obj, identifier, arg);\n    }\n\n    @Override\n    public Iterator getIterator(Object obj) {\n      checkAccess(obj);\n      return uberspect.getIterator(obj);\n    }\n\n    @Override\n    public JexlArithmetic.Uberspect getArithmetic(JexlArithmetic arithmetic) {\n      return uberspect.getArithmetic(arithmetic);\n    } \n  }\n}\n```\n\n## References\n* Apache Commons JEXL: [Project page](https://commons.apache.org/proper/commons-jexl/).\n* Apache Commons JEXL documentation: [JEXL 2.1.1 API](https://commons.apache.org/proper/commons-jexl/javadocs/apidocs-2.1.1/).\n* Apache Commons JEXL documentation: [JEXL 3.1 API](https://commons.apache.org/proper/commons-jexl/apidocs/index.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Expression language injection (JEXL)\nJava EXpression Language (JEXL) is a simple expression language provided by the Apache Commons JEXL library. The syntax is close to a mix of ECMAScript and shell-script. The language allows invocation of methods available in the JVM. If a JEXL expression is built using attacker-controlled data, and then evaluated, then it may allow the attacker to run arbitrary code.\n\n\n## Recommendation\nIt is generally recommended to avoid using untrusted input in a JEXL expression. If it is not possible, JEXL expressions should be run in a sandbox that allows accessing only explicitly allowed classes.\n\n\n## Example\nThe following example uses untrusted data to build and run a JEXL expression.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    String input = reader.readLine();\n    JexlEngine jexl = new JexlBuilder().create();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows how an untrusted JEXL expression can be run in a sandbox that allows accessing only methods in the `java.lang.Math` class. The sandbox is implemented using `JexlSandbox` class that is provided by Apache Commons JEXL 3.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlSandbox onlyMath = new JexlSandbox(false);\n    onlyMath.white(\"java.lang.Math\");\n    JexlEngine jexl = new JexlBuilder().sandbox(onlyMath).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n}\n```\nThe next example shows another way how a sandbox can be implemented. It uses a custom implementation of `JexlUberspect` that checks if callees are instances of allowed classes.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n        new InputStreamReader(socket.getInputStream()))) {\n    \n    JexlUberspect sandbox = new JexlUberspectSandbox();\n    JexlEngine jexl = new JexlBuilder().uberspect(sandbox).create();\n      \n    String input = reader.readLine();\n    JexlExpression expression = jexl.createExpression(input);\n    JexlContext context = new MapContext();\n    expression.evaluate(context);\n  }\n\n  private static class JexlUberspectSandbox implements JexlUberspect {\n\n    private static final List ALLOWED_CLASSES =\n              Arrays.asList(\"java.lang.Math\", \"java.util.Random\");\n\n    private final JexlUberspect uberspect = new JexlBuilder().create().getUberspect();\n\n    private void checkAccess(Object obj) {\n      if (!ALLOWED_CLASSES.contains(obj.getClass().getCanonicalName())) {\n        throw new AccessControlException(\"Not allowed\");\n      }\n    }\n\n    @Override\n    public JexlMethod getMethod(Object obj, String method, Object... args) {\n      checkAccess(obj);\n      return uberspect.getMethod(obj, method, args);\n    }\n\n    @Override\n    public List getResolvers(JexlOperator op, Object obj) {\n      checkAccess(obj);\n      return uberspect.getResolvers(op, obj);\n    }\n\n    @Override\n    public void setClassLoader(ClassLoader loader) {\n      uberspect.setClassLoader(loader);\n    }\n\n    @Override\n    public int getVersion() {\n      return uberspect.getVersion();\n    }\n\n    @Override\n    public JexlMethod getConstructor(Object obj, Object... args) {\n      checkAccess(obj);\n      return uberspect.getConstructor(obj, args);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(obj, identifier);\n    }\n\n    @Override\n    public JexlPropertyGet getPropertyGet(List resolvers, Object obj, Object identifier) {\n      checkAccess(obj);\n      return uberspect.getPropertyGet(resolvers, obj, identifier);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(obj, identifier, arg);\n    }\n\n    @Override\n    public JexlPropertySet getPropertySet(List resolvers, Object obj, Object identifier, Object arg) {\n      checkAccess(obj);\n      return uberspect.getPropertySet(resolvers, obj, identifier, arg);\n    }\n\n    @Override\n    public Iterator getIterator(Object obj) {\n      checkAccess(obj);\n      return uberspect.getIterator(obj);\n    }\n\n    @Override\n    public JexlArithmetic.Uberspect getArithmetic(JexlArithmetic arithmetic) {\n      return uberspect.getArithmetic(arithmetic);\n    } \n  }\n}\n```\n\n## References\n* Apache Commons JEXL: [Project page](https://commons.apache.org/proper/commons-jexl/).\n* Apache Commons JEXL documentation: [JEXL 2.1.1 API](https://commons.apache.org/proper/commons-jexl/javadocs/apidocs-2.1.1/).\n* Apache Commons JEXL documentation: [JEXL 3.1 API](https://commons.apache.org/proper/commons-jexl/apidocs/index.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/jexl-expression-injection",
+                "name": "java/jexl-expression-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/JexlInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Expression language injection (JEXL)"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a vulnerable version of JHipster to generate random numbers makes it easier for attackers to take over accounts."
+                },
+                "help": {
+                  "markdown": "# Detect JHipster Generator Vulnerability CVE-2019-16303\nThis query detects instances of `RandomUtil.java` that were generated by a [JHipster](https://www.jhipster.tech/) version that is vulnerable to [CVE-2019-16303](https://github.com/jhipster/jhipster-kotlin/security/advisories/GHSA-j3rh-8vwq-wh84).\n\nIf an app uses `RandomUtil.java` generated by a vulnerable version of JHipster, attackers can request a password reset token and use this to predict the value of future reset tokens generated by this server. Using this information, they can create a reset link that allows them to take over any account.\n\nThis vulnerability has a [ CVSS v3.0 Base Score of 9.8/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2019-16303&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST).\n\n\n## Example\nThe example below shows the vulnerable `RandomUtil` class generated by [JHipster prior to version 6.3.0](https://www.jhipster.tech/2019/09/13/jhipster-release-6.3.0.html).\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n\n    private static final int DEF_COUNT = 20;\n\n    private RandomUtil() {\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n}\n\n```\nBelow is a fixed version of the `RandomUtil` class.\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\nimport java.security.SecureRandom;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n    private static final SecureRandom SECURE_RANDOM = new SecureRandom(); // GOOD: Using SecureRandom\n\n    private static final int DEF_COUNT = 20;\n\n    static {\n        SECURE_RANDOM.nextBytes(new byte[64]);\n    }\n\n    private RandomUtil() {\n    }\n\n    private static String generateRandomAlphanumericString() {\n        // GOOD: Passing Secure Random to RandomStringUtils::random\n        return RandomStringUtils.random(DEF_COUNT, 0, 0, true, true, null, SECURE_RANDOM);\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return generateRandomAlphanumericString();\n    }\n}\n\n```\n\n## Recommendation\nYou should refactor the `RandomUtil` class and replace every call to `RandomStringUtils.randomAlphaNumeric`. You could regenerate the class using the latest version of JHipster, or use an automated refactoring. For example, using the [Patching JHipster CWE-338](https://github.com/moderneinc/jhipster-cwe-338) for the [Rewrite project](https://github.com/openrewrite/rewrite).\n\n\n## References\n* Cloudflare Blog: [ Why secure systems require random numbers ](https://blog.cloudflare.com/why-randomness-matters/)\n* Hacker News: [ How I Hacked Hacker News (with arc security advisory) ](https://news.ycombinator.com/item?id=639976)\n* Posts by Pucara Information Security Team: [ The Java Soothsayer: A practical application for insecure randomness. (Includes free 0day) ](https://blog.pucarasec.com/2020/05/09/the-java-soothsayer-a-practical-application-for-insecure-randomness-includes-free-0day/)\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n",
+                  "text": "# Detect JHipster Generator Vulnerability CVE-2019-16303\nThis query detects instances of `RandomUtil.java` that were generated by a [JHipster](https://www.jhipster.tech/) version that is vulnerable to [CVE-2019-16303](https://github.com/jhipster/jhipster-kotlin/security/advisories/GHSA-j3rh-8vwq-wh84).\n\nIf an app uses `RandomUtil.java` generated by a vulnerable version of JHipster, attackers can request a password reset token and use this to predict the value of future reset tokens generated by this server. Using this information, they can create a reset link that allows them to take over any account.\n\nThis vulnerability has a [ CVSS v3.0 Base Score of 9.8/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2019-16303&vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1&source=NIST).\n\n\n## Example\nThe example below shows the vulnerable `RandomUtil` class generated by [JHipster prior to version 6.3.0](https://www.jhipster.tech/2019/09/13/jhipster-release-6.3.0.html).\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n\n    private static final int DEF_COUNT = 20;\n\n    private RandomUtil() {\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return RandomStringUtils.randomNumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return RandomStringUtils.randomAlphanumeric(DEF_COUNT); // BAD: RandomStringUtils does not use SecureRandom\n    }\n}\n\n```\nBelow is a fixed version of the `RandomUtil` class.\n\n\n```java\nimport org.apache.commons.lang3.RandomStringUtils;\n\nimport java.security.SecureRandom;\n\n/**\n * Utility class for generating random Strings.\n */\npublic final class RandomUtil {\n    private static final SecureRandom SECURE_RANDOM = new SecureRandom(); // GOOD: Using SecureRandom\n\n    private static final int DEF_COUNT = 20;\n\n    static {\n        SECURE_RANDOM.nextBytes(new byte[64]);\n    }\n\n    private RandomUtil() {\n    }\n\n    private static String generateRandomAlphanumericString() {\n        // GOOD: Passing Secure Random to RandomStringUtils::random\n        return RandomStringUtils.random(DEF_COUNT, 0, 0, true, true, null, SECURE_RANDOM);\n    }\n\n    /**\n     * Generate a password.\n     *\n     * @return the generated password.\n     */\n    public static String generatePassword() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate an activation key.\n     *\n     * @return the generated activation key.\n     */\n    public static String generateActivationKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a reset key.\n     *\n     * @return the generated reset key.\n     */\n    public static String generateResetKey() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a unique series to validate a persistent token, used in the\n     * authentication remember-me mechanism.\n     *\n     * @return the generated series data.\n     */\n    public static String generateSeriesData() {\n        return generateRandomAlphanumericString();\n    }\n\n    /**\n     * Generate a persistent token, used in the authentication remember-me mechanism.\n     *\n     * @return the generated token data.\n     */\n    public static String generateTokenData() {\n        return generateRandomAlphanumericString();\n    }\n}\n\n```\n\n## Recommendation\nYou should refactor the `RandomUtil` class and replace every call to `RandomStringUtils.randomAlphaNumeric`. You could regenerate the class using the latest version of JHipster, or use an automated refactoring. For example, using the [Patching JHipster CWE-338](https://github.com/moderneinc/jhipster-cwe-338) for the [Rewrite project](https://github.com/openrewrite/rewrite).\n\n\n## References\n* Cloudflare Blog: [ Why secure systems require random numbers ](https://blog.cloudflare.com/why-randomness-matters/)\n* Hacker News: [ How I Hacked Hacker News (with arc security advisory) ](https://news.ycombinator.com/item?id=639976)\n* Posts by Pucara Information Security Team: [ The Java Soothsayer: A practical application for insecure randomness. (Includes free 0day) ](https://blog.pucarasec.com/2020/05/09/the-java-soothsayer-a-practical-application-for-insecure-randomness-includes-free-0day/)\n* Common Weakness Enumeration: [CWE-338](https://cwe.mitre.org/data/definitions/338.html).\n"
+                },
+                "id": "java/jhipster-prng",
+                "name": "java/jhipster-prng",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-338/JHipsterGeneratedPRNG.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-338",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Detect JHipster Generator Vulnerability CVE-2019-16303"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Performing a JNDI lookup with a user-controlled name can lead to the download of an untrusted object and to execution of arbitrary code."
+                },
+                "help": {
+                  "markdown": "# JNDI lookup with user-controlled name\nThe Java Naming and Directory Interface (JNDI) is a Java API for a directory service that allows Java software clients to discover and look up data and resources (in the form of Java objects) via a name. If the name being used to look up the data is controlled by the user, it can point to a malicious server, which can return an arbitrary object. In the worst case, this can allow remote code execution.\n\n\n## Recommendation\nThe general recommendation is to avoid passing untrusted data to the `InitialContext.lookup ` method. If the name being used to look up the object must be provided by the user, make sure that it's not in the form of an absolute URL or that it's the URL pointing to a trusted server.\n\n\n## Example\nIn the following examples, the code accepts a name from the user, which it uses to look up an object.\n\nIn the first example, the user provided name is used to look up an object.\n\nThe second example validates the name before using it to look up an object.\n\n\n```java\nimport javax.naming.Context;\nimport javax.naming.InitialContext;\n\npublic void jndiLookup(HttpServletRequest request) throws NamingException {\n  String name = request.getParameter(\"name\");\n\n  Hashtable env = new Hashtable();\n  env.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.rmi.registry.RegistryContextFactory\");\n  env.put(Context.PROVIDER_URL, \"rmi://trusted-server:1099\");\n  InitialContext ctx = new InitialContext(env);\n\n  // BAD: User input used in lookup\n  ctx.lookup(name);\n\n  // GOOD: The name is validated before being used in lookup\n  if (isValid(name)) {\n    ctx.lookup(name);\n  } else {\n    // Reject the request\n  }\n}\n```\n\n## References\n* Oracle: [Java Naming and Directory Interface (JNDI)](https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/).\n* Black Hat materials: [A Journey from JNDI/LDAP Manipulation to Remote Code Execution Dream Land](https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf).\n* Veracode: [Exploiting JNDI Injections in Java](https://www.veracode.com/blog/research/exploiting-jndi-injections-java).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n",
+                  "text": "# JNDI lookup with user-controlled name\nThe Java Naming and Directory Interface (JNDI) is a Java API for a directory service that allows Java software clients to discover and look up data and resources (in the form of Java objects) via a name. If the name being used to look up the data is controlled by the user, it can point to a malicious server, which can return an arbitrary object. In the worst case, this can allow remote code execution.\n\n\n## Recommendation\nThe general recommendation is to avoid passing untrusted data to the `InitialContext.lookup ` method. If the name being used to look up the object must be provided by the user, make sure that it's not in the form of an absolute URL or that it's the URL pointing to a trusted server.\n\n\n## Example\nIn the following examples, the code accepts a name from the user, which it uses to look up an object.\n\nIn the first example, the user provided name is used to look up an object.\n\nThe second example validates the name before using it to look up an object.\n\n\n```java\nimport javax.naming.Context;\nimport javax.naming.InitialContext;\n\npublic void jndiLookup(HttpServletRequest request) throws NamingException {\n  String name = request.getParameter(\"name\");\n\n  Hashtable env = new Hashtable();\n  env.put(Context.INITIAL_CONTEXT_FACTORY, \"com.sun.jndi.rmi.registry.RegistryContextFactory\");\n  env.put(Context.PROVIDER_URL, \"rmi://trusted-server:1099\");\n  InitialContext ctx = new InitialContext(env);\n\n  // BAD: User input used in lookup\n  ctx.lookup(name);\n\n  // GOOD: The name is validated before being used in lookup\n  if (isValid(name)) {\n    ctx.lookup(name);\n  } else {\n    // Reject the request\n  }\n}\n```\n\n## References\n* Oracle: [Java Naming and Directory Interface (JNDI)](https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/).\n* Black Hat materials: [A Journey from JNDI/LDAP Manipulation to Remote Code Execution Dream Land](https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf).\n* Veracode: [Exploiting JNDI Injections in Java](https://www.veracode.com/blog/research/exploiting-jndi-injections-java).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n"
+                },
+                "id": "java/jndi-injection",
+                "name": "java/jndi-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-074/JndiInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-074",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "JNDI lookup with user-controlled name"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building an LDAP query from user-controlled sources is vulnerable to insertion of malicious LDAP code by the user."
+                },
+                "help": {
+                  "markdown": "# LDAP query built from user-controlled sources\nIf an LDAP query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious LDAP queries.\n\n\n## Recommendation\nIf user input must be included in an LDAP query, it should be escaped to avoid a malicious user providing special characters that change the meaning of the query. If possible build the LDAP query using framework helper methods, for example from Spring's `LdapQueryBuilder` and `LdapNameBuilder`, instead of string concatenation. Alternatively, escape user input using an appropriate LDAP encoding method, for example: `encodeForLDAP` or `encodeForDN` from OWASP ESAPI, `LdapEncoder.filterEncode` or `LdapEncoder.nameEncode` from Spring LDAP, or `Filter.encodeValue` from UnboundID library.\n\n\n## Example\nIn the following examples, the code accepts an \"organization name\" and a \"username\" from the user, which it uses to query LDAP.\n\nThe first example concatenates the unvalidated and unencoded user input directly into both the DN (Distinguished Name) and the search filter used for the LDAP query. A malicious user could provide special characters to change the meaning of these queries, and search for a completely different set of values. The LDAP query is executed using Java JNDI API.\n\nThe second example uses the OWASP ESAPI library to encode the user values before they are included in the DN and search filters. This ensures the meaning of the query cannot be changed by a malicious user.\n\n\n```java\nimport javax.naming.directory.DirContext;\nimport org.owasp.esapi.Encoder;\nimport org.owasp.esapi.reference.DefaultEncoder;\n\npublic void ldapQueryBad(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // BAD: User input used in DN (Distinguished Name) without encoding\n  String dn = \"OU=People,O=\" + organizationName;\n\n  // BAD: User input used in search filter without encoding\n  String filter = \"username=\" + userName;\n\n  ctx.search(dn, filter, new SearchControls());\n}\n\npublic void ldapQueryGood(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // ESAPI encoder\n  Encoder encoder = DefaultEncoder.getInstance();\n\n  // GOOD: Organization name is encoded before being used in DN\n  String safeOrganizationName = encoder.encodeForDN(organizationName);\n  String safeDn = \"OU=People,O=\" + safeOrganizationName;\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeUsername = encoder.encodeForLDAP(username);\n  String safeFilter = \"username=\" + safeUsername;\n  \n  ctx.search(safeDn, safeFilter, new SearchControls());\n}\n```\nThe third example uses Spring `LdapQueryBuilder` to build an LDAP query. In addition to simplifying the building of complex search parameters, it also provides proper escaping of any unsafe characters in search filters. The DN is built using `LdapNameBuilder`, which also provides proper escaping.\n\n\n```java\nimport static org.springframework.ldap.query.LdapQueryBuilder.query;\nimport org.springframework.ldap.support.LdapNameBuilder;\n\npublic void ldapQueryGood(@RequestParam String organizationName, @RequestParam String username) {\n  // GOOD: Organization name is encoded before being used in DN\n  String safeDn = LdapNameBuilder.newInstance()\n    .add(\"O\", organizationName)\n    .add(\"OU=People\")\n    .build().toString();\n\n  // GOOD: User input is encoded before being used in search filter\n  LdapQuery query = query()\n    .base(safeDn)\n    .where(\"username\").is(username);\n\n  ldapTemplate.search(query, new AttributeCheckAttributesMapper());\n}\n```\nThe fourth example uses `UnboundID` classes, `Filter` and `DN`, to construct a safe filter and base DN.\n\n\n```java\nimport com.unboundid.ldap.sdk.LDAPConnection;\nimport com.unboundid.ldap.sdk.DN;\nimport com.unboundid.ldap.sdk.RDN;\nimport com.unboundid.ldap.sdk.Filter;\n\npublic void ldapQueryGood(HttpServletRequest request, LDAPConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  DN safeDn = new DN(new RDN(\"OU\", \"People\"), new RDN(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  Filter safeFilter = Filter.createEqualityFilter(\"username\", username);\n  \n  c.search(safeDn.toString(), SearchScope.ONE, safeFilter);\n}\n```\nThe fifth example shows how to build a safe filter and DN using the Apache LDAP API.\n\n\n```java\nimport org.apache.directory.ldap.client.api.LdapConnection;\nimport org.apache.directory.api.ldap.model.name.Dn;\nimport org.apache.directory.api.ldap.model.name.Rdn;\nimport org.apache.directory.api.ldap.model.message.SearchRequest;\nimport org.apache.directory.api.ldap.model.message.SearchRequestImpl;\nimport static org.apache.directory.ldap.client.api.search.FilterBuilder.equal;\n\npublic void ldapQueryGood(HttpServletRequest request, LdapConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  Dn safeDn = new Dn(new Rdn(\"OU\", \"People\"), new Rdn(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeFilter = equal(\"username\", username);\n  \n  SearchRequest searchRequest = new SearchRequestImpl();\n  searchRequest.setBase(safeDn);\n  searchRequest.setFilter(safeFilter);\n  c.search(searchRequest);\n}\n```\n\n## References\n* OWASP: [LDAP Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet.html).\n* OWASP ESAPI: [OWASP ESAPI](https://owasp.org/www-project-enterprise-security-api/).\n* Spring LdapQueryBuilder doc: [LdapQueryBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/query/LdapQueryBuilder.html).\n* Spring LdapNameBuilder doc: [LdapNameBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/support/LdapNameBuilder.html).\n* UnboundID: [Understanding and Defending Against LDAP Injection Attacks](https://ldap.com/2018/05/04/understanding-and-defending-against-ldap-injection-attacks/).\n* Common Weakness Enumeration: [CWE-90](https://cwe.mitre.org/data/definitions/90.html).\n",
+                  "text": "# LDAP query built from user-controlled sources\nIf an LDAP query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious LDAP queries.\n\n\n## Recommendation\nIf user input must be included in an LDAP query, it should be escaped to avoid a malicious user providing special characters that change the meaning of the query. If possible build the LDAP query using framework helper methods, for example from Spring's `LdapQueryBuilder` and `LdapNameBuilder`, instead of string concatenation. Alternatively, escape user input using an appropriate LDAP encoding method, for example: `encodeForLDAP` or `encodeForDN` from OWASP ESAPI, `LdapEncoder.filterEncode` or `LdapEncoder.nameEncode` from Spring LDAP, or `Filter.encodeValue` from UnboundID library.\n\n\n## Example\nIn the following examples, the code accepts an \"organization name\" and a \"username\" from the user, which it uses to query LDAP.\n\nThe first example concatenates the unvalidated and unencoded user input directly into both the DN (Distinguished Name) and the search filter used for the LDAP query. A malicious user could provide special characters to change the meaning of these queries, and search for a completely different set of values. The LDAP query is executed using Java JNDI API.\n\nThe second example uses the OWASP ESAPI library to encode the user values before they are included in the DN and search filters. This ensures the meaning of the query cannot be changed by a malicious user.\n\n\n```java\nimport javax.naming.directory.DirContext;\nimport org.owasp.esapi.Encoder;\nimport org.owasp.esapi.reference.DefaultEncoder;\n\npublic void ldapQueryBad(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // BAD: User input used in DN (Distinguished Name) without encoding\n  String dn = \"OU=People,O=\" + organizationName;\n\n  // BAD: User input used in search filter without encoding\n  String filter = \"username=\" + userName;\n\n  ctx.search(dn, filter, new SearchControls());\n}\n\npublic void ldapQueryGood(HttpServletRequest request, DirContext ctx) throws NamingException {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // ESAPI encoder\n  Encoder encoder = DefaultEncoder.getInstance();\n\n  // GOOD: Organization name is encoded before being used in DN\n  String safeOrganizationName = encoder.encodeForDN(organizationName);\n  String safeDn = \"OU=People,O=\" + safeOrganizationName;\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeUsername = encoder.encodeForLDAP(username);\n  String safeFilter = \"username=\" + safeUsername;\n  \n  ctx.search(safeDn, safeFilter, new SearchControls());\n}\n```\nThe third example uses Spring `LdapQueryBuilder` to build an LDAP query. In addition to simplifying the building of complex search parameters, it also provides proper escaping of any unsafe characters in search filters. The DN is built using `LdapNameBuilder`, which also provides proper escaping.\n\n\n```java\nimport static org.springframework.ldap.query.LdapQueryBuilder.query;\nimport org.springframework.ldap.support.LdapNameBuilder;\n\npublic void ldapQueryGood(@RequestParam String organizationName, @RequestParam String username) {\n  // GOOD: Organization name is encoded before being used in DN\n  String safeDn = LdapNameBuilder.newInstance()\n    .add(\"O\", organizationName)\n    .add(\"OU=People\")\n    .build().toString();\n\n  // GOOD: User input is encoded before being used in search filter\n  LdapQuery query = query()\n    .base(safeDn)\n    .where(\"username\").is(username);\n\n  ldapTemplate.search(query, new AttributeCheckAttributesMapper());\n}\n```\nThe fourth example uses `UnboundID` classes, `Filter` and `DN`, to construct a safe filter and base DN.\n\n\n```java\nimport com.unboundid.ldap.sdk.LDAPConnection;\nimport com.unboundid.ldap.sdk.DN;\nimport com.unboundid.ldap.sdk.RDN;\nimport com.unboundid.ldap.sdk.Filter;\n\npublic void ldapQueryGood(HttpServletRequest request, LDAPConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  DN safeDn = new DN(new RDN(\"OU\", \"People\"), new RDN(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  Filter safeFilter = Filter.createEqualityFilter(\"username\", username);\n  \n  c.search(safeDn.toString(), SearchScope.ONE, safeFilter);\n}\n```\nThe fifth example shows how to build a safe filter and DN using the Apache LDAP API.\n\n\n```java\nimport org.apache.directory.ldap.client.api.LdapConnection;\nimport org.apache.directory.api.ldap.model.name.Dn;\nimport org.apache.directory.api.ldap.model.name.Rdn;\nimport org.apache.directory.api.ldap.model.message.SearchRequest;\nimport org.apache.directory.api.ldap.model.message.SearchRequestImpl;\nimport static org.apache.directory.ldap.client.api.search.FilterBuilder.equal;\n\npublic void ldapQueryGood(HttpServletRequest request, LdapConnection c) {\n  String organizationName = request.getParameter(\"organization_name\");\n  String username = request.getParameter(\"username\");\n\n  // GOOD: Organization name is encoded before being used in DN\n  Dn safeDn = new Dn(new Rdn(\"OU\", \"People\"), new Rdn(\"O\", organizationName));\n\n  // GOOD: User input is encoded before being used in search filter\n  String safeFilter = equal(\"username\", username);\n  \n  SearchRequest searchRequest = new SearchRequestImpl();\n  searchRequest.setBase(safeDn);\n  searchRequest.setFilter(safeFilter);\n  c.search(searchRequest);\n}\n```\n\n## References\n* OWASP: [LDAP Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet.html).\n* OWASP ESAPI: [OWASP ESAPI](https://owasp.org/www-project-enterprise-security-api/).\n* Spring LdapQueryBuilder doc: [LdapQueryBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/query/LdapQueryBuilder.html).\n* Spring LdapNameBuilder doc: [LdapNameBuilder](https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/support/LdapNameBuilder.html).\n* UnboundID: [Understanding and Defending Against LDAP Injection Attacks](https://ldap.com/2018/05/04/understanding-and-defending-against-ldap-injection-attacks/).\n* Common Weakness Enumeration: [CWE-90](https://cwe.mitre.org/data/definitions/90.html).\n"
+                },
+                "id": "java/ldap-injection",
+                "name": "java/ldap-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-090/LdapInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-090",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "LDAP query built from user-controlled sources"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Writing information without explicit permissions to a shared temporary directory may disclose it to other users."
+                },
+                "help": {
+                  "markdown": "# Local information disclosure in a temporary directory\nLocal information disclosure can occur when files/directories are written into directories that are shared between all users on the system.\n\nOn most [unix-like](https://en.wikipedia.org/wiki/Unix-like) systems, the system temporary directory is shared between local users. If files/directories are created within the system temporary directory without using APIs that explicitly set the correct file permissions, local information disclosure can occur.\n\nDepending upon the particular file contents exposed, this vulnerability can have a [CVSSv3.1 base score of 6.2/10](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N&version=3.1).\n\n\n## Recommendation\nUse JDK methods that specifically protect against this vulnerability:\n\n* [java.nio.file.Files.createTempDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.nio.file.Path-java.lang.String-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createTempFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.nio.file.Path-java.lang.String-java.lang.String-java.nio.file.attribute.FileAttribute...-)\nOtherwise, create the file/directory by manually specifying the expected posix file permissions. For example: `PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))`\n\n* [java.nio.file.Files.createFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createFile-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectory-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectories](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectories-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n\n## Example\nIn the following example, files and directories are created with file permissions that allow other local users to read their contents.\n\n\n```java\nimport java.io.File;\n\npublic class TempDirUsageVulnerable {\n    void exampleVulnerable() {\n        File temp1 = File.createTempFile(\"random\", \".txt\"); // BAD: File has permissions `-rw-r--r--`\n\n        File temp2 = File.createTempFile(\"random\", \"file\", null); // BAD: File has permissions `-rw-r--r--`\n\n        File systemTempDir = new File(System.getProperty(\"java.io.tmpdir\"));\n        File temp3 = File.createTempFile(\"random\", \"file\", systemTempDir); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDir = com.google.common.io.Files.createTempDir(); // BAD: CVE-2020-8908: Directory has permissions `drwxr-xr-x`\n\n        new File(System.getProperty(\"java.io.tmpdir\"), \"/child\").mkdir(); // BAD: Directory has permissions `-rw-r--r--`\n\n        File tempDirChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        Files.createFile(tempDirChildFile.toPath()); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        tempDirChildDir.mkdir(); // BAD: Directory has permissions `drwxr-xr-x`\n        Files.createDirectory(tempDirChildDir.toPath()); // BAD: Directory has permissions `drwxr-xr-x`\n    }\n}\n\n```\nIn the following example, files and directories are created with file permissions that protect their contents.\n\n\n```java\nimport java.io.File;\nimport java.io.IOException;\nimport java.io.UncheckedIOException;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.nio.file.attribute.PosixFilePermission;\nimport java.nio.file.attribute.PosixFilePermissions;\n\nimport java.util.EnumSet;\n\n\npublic class TempDirUsageSafe {\n    void exampleSafe() throws IOException {\n        Path temp1 = Files.createTempFile(\"random\", \".txt\"); // GOOD: File has permissions `-rw-------`\n\n        Path temp2 = Files.createTempDirectory(\"random-directory\"); // GOOD: File has permissions `drwx------`\n\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        // Warning: This will fail on windows as it doesn't support PosixFilePermissions.\n        // See `exampleSafeWithWindowsSupportFile` if your code needs to support windows and unix-like systems.\n        Files.createFile(\n            tempChildFile.toPath(),\n            PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))\n        ); // GOOD: Good has permissions `-rw-------`\n    }\n\n    /*\n     * An example of a safe use of createFile or createDirectory if your code must support windows and unix-like systems.\n     */\n    void exampleSafeWithWindowsSupportFile() {\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        createTempFile(tempChildFile.toPath()); // GOOD: Good has permissions `-rw-------`\n    }\n\n    static void createTempFile(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createFile(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `-rw-------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `-rw-------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectory(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp file\", exception);\n        }\n    }\n\n    void exampleSafeWithWindowsSupportDirectory() {\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        createTempDirectories(tempDirChildDir.toPath()); // GOOD: Directory has permissions `drwx------`\n    }\n\n    static void createTempDirectories(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE,\n                            PosixFilePermission.OWNER_EXECUTE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createDirectories(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `drwx------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `drwx------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectories(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp dir\", exception);\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Insecure Temporary File](https://owasp.org/www-community/vulnerabilities/Insecure_Temporary_File).\n* CERT: [FIO00-J. Do not operate on files in shared directories](https://wiki.sei.cmu.edu/confluence/display/java/FIO00-J.+Do+not+operate+on+files+in+shared+directories).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n",
+                  "text": "# Local information disclosure in a temporary directory\nLocal information disclosure can occur when files/directories are written into directories that are shared between all users on the system.\n\nOn most [unix-like](https://en.wikipedia.org/wiki/Unix-like) systems, the system temporary directory is shared between local users. If files/directories are created within the system temporary directory without using APIs that explicitly set the correct file permissions, local information disclosure can occur.\n\nDepending upon the particular file contents exposed, this vulnerability can have a [CVSSv3.1 base score of 6.2/10](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N&version=3.1).\n\n\n## Recommendation\nUse JDK methods that specifically protect against this vulnerability:\n\n* [java.nio.file.Files.createTempDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.nio.file.Path-java.lang.String-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createTempFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.nio.file.Path-java.lang.String-java.lang.String-java.nio.file.attribute.FileAttribute...-)\nOtherwise, create the file/directory by manually specifying the expected posix file permissions. For example: `PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))`\n\n* [java.nio.file.Files.createFile](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createFile-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectory](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectory-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n* [java.nio.file.Files.createDirectories](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createDirectories-java.nio.file.Path-java.nio.file.attribute.FileAttribute...-)\n\n## Example\nIn the following example, files and directories are created with file permissions that allow other local users to read their contents.\n\n\n```java\nimport java.io.File;\n\npublic class TempDirUsageVulnerable {\n    void exampleVulnerable() {\n        File temp1 = File.createTempFile(\"random\", \".txt\"); // BAD: File has permissions `-rw-r--r--`\n\n        File temp2 = File.createTempFile(\"random\", \"file\", null); // BAD: File has permissions `-rw-r--r--`\n\n        File systemTempDir = new File(System.getProperty(\"java.io.tmpdir\"));\n        File temp3 = File.createTempFile(\"random\", \"file\", systemTempDir); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDir = com.google.common.io.Files.createTempDir(); // BAD: CVE-2020-8908: Directory has permissions `drwxr-xr-x`\n\n        new File(System.getProperty(\"java.io.tmpdir\"), \"/child\").mkdir(); // BAD: Directory has permissions `-rw-r--r--`\n\n        File tempDirChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        Files.createFile(tempDirChildFile.toPath()); // BAD: File has permissions `-rw-r--r--`\n\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        tempDirChildDir.mkdir(); // BAD: Directory has permissions `drwxr-xr-x`\n        Files.createDirectory(tempDirChildDir.toPath()); // BAD: Directory has permissions `drwxr-xr-x`\n    }\n}\n\n```\nIn the following example, files and directories are created with file permissions that protect their contents.\n\n\n```java\nimport java.io.File;\nimport java.io.IOException;\nimport java.io.UncheckedIOException;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.nio.file.attribute.PosixFilePermission;\nimport java.nio.file.attribute.PosixFilePermissions;\n\nimport java.util.EnumSet;\n\n\npublic class TempDirUsageSafe {\n    void exampleSafe() throws IOException {\n        Path temp1 = Files.createTempFile(\"random\", \".txt\"); // GOOD: File has permissions `-rw-------`\n\n        Path temp2 = Files.createTempDirectory(\"random-directory\"); // GOOD: File has permissions `drwx------`\n\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        // Warning: This will fail on windows as it doesn't support PosixFilePermissions.\n        // See `exampleSafeWithWindowsSupportFile` if your code needs to support windows and unix-like systems.\n        Files.createFile(\n            tempChildFile.toPath(),\n            PosixFilePermissions.asFileAttribute(EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE))\n        ); // GOOD: Good has permissions `-rw-------`\n    }\n\n    /*\n     * An example of a safe use of createFile or createDirectory if your code must support windows and unix-like systems.\n     */\n    void exampleSafeWithWindowsSupportFile() {\n        // Creating a temporary file with a non-randomly generated name\n        File tempChildFile = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-create-file.txt\");\n        createTempFile(tempChildFile.toPath()); // GOOD: Good has permissions `-rw-------`\n    }\n\n    static void createTempFile(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createFile(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `-rw-------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `-rw-------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectory(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp file\", exception);\n        }\n    }\n\n    void exampleSafeWithWindowsSupportDirectory() {\n        File tempDirChildDir = new File(System.getProperty(\"java.io.tmpdir\"), \"/child-dir\");\n        createTempDirectories(tempDirChildDir.toPath()); // GOOD: Directory has permissions `drwx------`\n    }\n\n    static void createTempDirectories(Path tempDirChild) {\n        try {\n            if (tempDirChild.getFileSystem().supportedFileAttributeViews().contains(\"posix\")) {\n                // Explicit permissions setting is only required on unix-like systems because\n                // the temporary directory is shared between all users.\n                // This is not necessary on Windows, each user has their own temp directory\n                final EnumSet posixFilePermissions =\n                        EnumSet.of(\n                            PosixFilePermission.OWNER_READ,\n                            PosixFilePermission.OWNER_WRITE,\n                            PosixFilePermission.OWNER_EXECUTE\n                        );\n                if (!Files.exists(tempDirChild)) {\n                    Files.createDirectories(\n                        tempDirChild,\n                        PosixFilePermissions.asFileAttribute(posixFilePermissions)\n                    ); // GOOD: Directory has permissions `drwx------`\n                } else {\n                    Files.setPosixFilePermissions(\n                            tempDirChild,\n                            posixFilePermissions\n                    ); // GOOD: Good has permissions `drwx------`, or will throw an exception if this fails\n                }\n            } else if (!Files.exists(tempDirChild)) {\n                // On Windows, we still need to create the directory, when it doesn't already exist.\n                Files.createDirectories(tempDirChild); // GOOD: Windows doesn't share the temp directory between users\n            }\n        } catch (IOException exception) {\n            throw new UncheckedIOException(\"Failed to create temp dir\", exception);\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Insecure Temporary File](https://owasp.org/www-community/vulnerabilities/Insecure_Temporary_File).\n* CERT: [FIO00-J. Do not operate on files in shared directories](https://wiki.sei.cmu.edu/confluence/display/java/FIO00-J.+Do+not+operate+on+files+in+shared+directories).\n* Common Weakness Enumeration: [CWE-200](https://cwe.mitre.org/data/definitions/200.html).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n"
+                },
+                "id": "java/local-temp-file-or-directory-information-disclosure",
+                "name": "java/local-temp-file-or-directory-information-disclosure",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-200",
+                    "external/cwe/cwe-732",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Local information disclosure in a temporary directory"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building log entries from user-controlled data may allow insertion of forged log entries by malicious users."
+                },
+                "help": {
+                  "markdown": "# Log Injection\nIf unsanitized user input is written to a log entry, a malicious user may be able to forge new log entries.\n\nForgery can occur if a user provides some input creating the appearance of multiple log entries. This can include unescaped new-line characters, or HTML or other markup.\n\n\n## Recommendation\nUser input should be suitably sanitized before it is logged.\n\nIf the log entries are plain text then line breaks should be removed from user input, using for example `String replace(char oldChar, char newChar)` or similar. Care should also be taken that user input is clearly marked in log entries, and that a malicious user cannot cause confusion in other ways.\n\nFor log entries that will be displayed in HTML, user input should be HTML encoded before being logged, to prevent forgery and other forms of HTML injection.\n\n\n## Example\nIn the first example, a username, provided by the user, is logged using `logger.warn` (from `org.slf4j.Logger`). In the first case (`/bad` endpoint), the username is logged without any sanitization. If a malicious user provides `Guest'%0AUser:'Admin` as a username parameter, the log entry will be split into two separate lines, where the first line will be `User:'Guest'` and the second one will be `User:'Admin'`.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /bad?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/bad\")\n    public String bad(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        log.warn(\"User:'{}'\", username);\n        // The logging call above would result in multiple log entries as shown below:\n        // User:'Guest'\n        // User:'Admin'\n        return username;\n    }\n}\n\n\n```\nIn the second example (`/good` endpoint), `matches()` is used to ensure the user input only has alphanumeric characters. If a malicious user provides \\`Guest'%0AUser:'Admin\\` as a username parameter, the log entry will not be logged at all, preventing the injection.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /good?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/good\")\n    public String good(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        // The regex check here, allows only alphanumeric characters to pass.\n        // Hence, does not result in log injection\n        if (username.matches(\"\\\\w*\")) {\n            log.warn(\"User:'{}'\", username);\n\n            return username;\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n* Common Weakness Enumeration: [CWE-117](https://cwe.mitre.org/data/definitions/117.html).\n",
+                  "text": "# Log Injection\nIf unsanitized user input is written to a log entry, a malicious user may be able to forge new log entries.\n\nForgery can occur if a user provides some input creating the appearance of multiple log entries. This can include unescaped new-line characters, or HTML or other markup.\n\n\n## Recommendation\nUser input should be suitably sanitized before it is logged.\n\nIf the log entries are plain text then line breaks should be removed from user input, using for example `String replace(char oldChar, char newChar)` or similar. Care should also be taken that user input is clearly marked in log entries, and that a malicious user cannot cause confusion in other ways.\n\nFor log entries that will be displayed in HTML, user input should be HTML encoded before being logged, to prevent forgery and other forms of HTML injection.\n\n\n## Example\nIn the first example, a username, provided by the user, is logged using `logger.warn` (from `org.slf4j.Logger`). In the first case (`/bad` endpoint), the username is logged without any sanitization. If a malicious user provides `Guest'%0AUser:'Admin` as a username parameter, the log entry will be split into two separate lines, where the first line will be `User:'Guest'` and the second one will be `User:'Admin'`.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /bad?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/bad\")\n    public String bad(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        log.warn(\"User:'{}'\", username);\n        // The logging call above would result in multiple log entries as shown below:\n        // User:'Guest'\n        // User:'Admin'\n        return username;\n    }\n}\n\n\n```\nIn the second example (`/good` endpoint), `matches()` is used to ensure the user input only has alphanumeric characters. If a malicious user provides \\`Guest'%0AUser:'Admin\\` as a username parameter, the log entry will not be logged at all, preventing the injection.\n\n\n```java\npackage com.example.restservice;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class LogInjection {\n\n    private final Logger log = LoggerFactory.getLogger(LogInjection.class);\n\n    // /good?username=Guest'%0AUser:'Admin\n    @GetMapping(\"/good\")\n    public String good(@RequestParam(value = \"username\", defaultValue = \"name\") String username) {\n        // The regex check here, allows only alphanumeric characters to pass.\n        // Hence, does not result in log injection\n        if (username.matches(\"\\\\w*\")) {\n            log.warn(\"User:'{}'\", username);\n\n            return username;\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Log Injection](https://owasp.org/www-community/attacks/Log_Injection).\n* Common Weakness Enumeration: [CWE-117](https://cwe.mitre.org/data/definitions/117.html).\n"
+                },
+                "id": "java/log-injection",
+                "name": "java/log-injection",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-117/LogInjection.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-117",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Log Injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a deprecated artifact repository may eventually give attackers access for a supply chain attack."
+                },
+                "help": {
+                  "markdown": "# Depending upon JCenter/Bintray as an artifact repository\n[Bintray and JCenter are shutting down on February 1st, 2022](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/). Relying upon repositories that are deprecated or scheduled to be shutdown can have unintended consequences; for example, artifacts being resolved from a different artifact server or a total failure of the CI build.\n\nWhen artifact repositories are left unmaintained for a long period of time, vulnerabilities may emerge. Theoretically, this could allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\n\n## Recommendation\nAlways use the canonical repository for resolving your dependencies.\n\n\n## Example\nThe following example shows locations in a Maven POM file where artifact repository upload/download is configured. The use of Bintray in any of these locations is not advised.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Bintray Usage\n    An example of using bintray to download and upload dependencies\n\n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n        \n            jcenter-snapshots\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://dl.bintray.com/groovy/maven\n        \n    \n    \n        \n            jcenter-plugins\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n\n\n```\n\n## References\n* JFrog blog: [ Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter ](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)\n* Common Weakness Enumeration: [CWE-1104](https://cwe.mitre.org/data/definitions/1104.html).\n",
+                  "text": "# Depending upon JCenter/Bintray as an artifact repository\n[Bintray and JCenter are shutting down on February 1st, 2022](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/). Relying upon repositories that are deprecated or scheduled to be shutdown can have unintended consequences; for example, artifacts being resolved from a different artifact server or a total failure of the CI build.\n\nWhen artifact repositories are left unmaintained for a long period of time, vulnerabilities may emerge. Theoretically, this could allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\n\n## Recommendation\nAlways use the canonical repository for resolving your dependencies.\n\n\n## Example\nThe following example shows locations in a Maven POM file where artifact repository upload/download is configured. The use of Bintray in any of these locations is not advised.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Bintray Usage\n    An example of using bintray to download and upload dependencies\n\n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n        \n            jcenter-snapshots\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n    \n        \n            jcenter\n            JCenter\n            \n            https://dl.bintray.com/groovy/maven\n        \n    \n    \n        \n            jcenter-plugins\n            JCenter\n            \n            https://jcenter.bintray.com\n        \n    \n\n\n```\n\n## References\n* JFrog blog: [ Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter ](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/)\n* Common Weakness Enumeration: [CWE-1104](https://cwe.mitre.org/data/definitions/1104.html).\n"
+                },
+                "id": "java/maven/dependency-upon-bintray",
+                "name": "java/maven/dependency-upon-bintray",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-1104/MavenPomDependsOnBintray.ql",
+                  "security-severity": "6.5",
+                  "tags": [
+                    "external/cwe/cwe-1104",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Depending upon JCenter/Bintray as an artifact repository"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Non-HTTPS connections can be intercepted by third parties."
+                },
+                "help": {
+                  "markdown": "# Failure to use HTTPS or SFTP URL in Maven artifact upload/download\nUsing an insecure protocol like HTTP or FTP to download your dependencies leaves your Maven build vulnerable to a [Man in the Middle (MITM)](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). This can allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [Supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\nThis vulnerability has a [ CVSS v3.1 base score of 8.1/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1).\n\n\n## Recommendation\nAlways use HTTPS or SFTP to download artifacts from artifact servers.\n\n\n## Example\nThese examples show examples of locations in Maven POM files where artifact repository upload/download is configured. The first shows the use of HTTP, the second shows the use of HTTPS.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of insecure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Insecure Repository Snapshots\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Insecure Repository\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n    \n\n\n```\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of secure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Secure Repository Snapshots\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Secure Repository\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n    \n\n\n```\n\n## References\n* Research: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://medium.com/bugbountywriteup/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb?source=friends_link&sk=3c99970c55a899ad9ef41f126efcde0e)\n* Research: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Proof of Concept: [ mveytsman/dilettante ](https://github.com/mveytsman/dilettante)\n* Additional Gradle & Maven plugin: [ Announcing nohttp ](https://spring.io/blog/2019/06/10/announcing-nohttp)\n* Java Ecosystem Announcement: [ HTTP Decommission Artifact Server Announcements ](https://gist.github.com/JLLeitschuh/789e49e3d34092a005031a0a1880af99)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n",
+                  "text": "# Failure to use HTTPS or SFTP URL in Maven artifact upload/download\nUsing an insecure protocol like HTTP or FTP to download your dependencies leaves your Maven build vulnerable to a [Man in the Middle (MITM)](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). This can allow attackers to inject malicious code into the artifacts that you are resolving and infect build artifacts that are being produced. This can be used by attackers to perform a [Supply chain attack](https://en.wikipedia.org/wiki/Supply_chain_attack) against your project's users.\n\nThis vulnerability has a [ CVSS v3.1 base score of 8.1/10 ](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1).\n\n\n## Recommendation\nAlways use HTTPS or SFTP to download artifacts from artifact servers.\n\n\n## Example\nThese examples show examples of locations in Maven POM files where artifact repository upload/download is configured. The first shows the use of HTTP, the second shows the use of HTTPS.\n\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of insecure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Insecure Repository Snapshots\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Insecure Repository\n            \n            http://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Insecure Repository Releases\n            \n            http://insecure-repository.example\n        \n    \n\n\n```\n\n```xml\n\n\n\n    4.0.0\n\n    com.semmle\n    parent\n    1.0\n    pom\n\n    Security Testing\n    An example of secure download and upload of dependencies\n\n    \n        \n            insecure-releases\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n        \n            insecure-snapshots\n            Secure Repository Snapshots\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure\n            Secure Repository\n            \n            https://insecure-repository.example\n        \n    \n    \n        \n            insecure-plugins\n            Secure Repository Releases\n            \n            https://insecure-repository.example\n        \n    \n\n\n```\n\n## References\n* Research: [ Want to take over the Java ecosystem? All you need is a MITM! ](https://medium.com/bugbountywriteup/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb?source=friends_link&sk=3c99970c55a899ad9ef41f126efcde0e)\n* Research: [ How to take over the computer of any Java (or Closure or Scala) Developer. ](https://max.computer/blog/how-to-take-over-the-computer-of-any-java-or-clojure-or-scala-developer/)\n* Proof of Concept: [ mveytsman/dilettante ](https://github.com/mveytsman/dilettante)\n* Additional Gradle & Maven plugin: [ Announcing nohttp ](https://spring.io/blog/2019/06/10/announcing-nohttp)\n* Java Ecosystem Announcement: [ HTTP Decommission Artifact Server Announcements ](https://gist.github.com/JLLeitschuh/789e49e3d34092a005031a0a1880af99)\n* Common Weakness Enumeration: [CWE-300](https://cwe.mitre.org/data/definitions/300.html).\n* Common Weakness Enumeration: [CWE-319](https://cwe.mitre.org/data/definitions/319.html).\n* Common Weakness Enumeration: [CWE-494](https://cwe.mitre.org/data/definitions/494.html).\n* Common Weakness Enumeration: [CWE-829](https://cwe.mitre.org/data/definitions/829.html).\n"
+                },
+                "id": "java/maven/non-https-url",
+                "name": "java/maven/non-https-url",
+                "properties": {
+                  "precision": "very-high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-829/InsecureDependencyResolution.ql",
+                  "security-severity": "8.1",
+                  "tags": [
+                    "external/cwe/cwe-300",
+                    "external/cwe/cwe-319",
+                    "external/cwe/cwe-494",
+                    "external/cwe/cwe-829",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Failure to use HTTPS or SFTP URL in Maven artifact upload/download"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Failing to check the Json Web Token (JWT) signature may allow an attacker to forge their own tokens."
+                },
+                "help": {
+                  "markdown": "# Missing JWT signature check\nA JSON Web Token (JWT) consists of three parts: header, payload, and signature. The `io.jsonwebtoken.jjwt` library is one of many libraries used for working with JWTs. It offers different methods for parsing tokens like `parse`, `parseClaimsJws`, and `parsePlaintextJws`. The last two correctly verify that the JWT is properly signed. This is done by computing the signature of the combination of header and payload and comparing the locally computed signature with the signature part of the JWT.\n\nTherefore it is necessary to provide the `JwtParser` with a key that is used for signature validation. Unfortunately the `parse` method **accepts** a JWT whose signature is empty although a signing key has been set for the parser. This means that an attacker can create arbitrary JWTs that will be accepted if this method is used.\n\n\n## Recommendation\nAlways verify the signature by using either the `parseClaimsJws` and `parsePlaintextJws` methods or by overriding the `onPlaintextJws` or `onClaimsJws` of `JwtHandlerAdapter`.\n\n\n## Example\nThe following example shows four cases where a signing key is set for a parser. In the first 'BAD' case the `parse` method is used, which will not validate the signature. The second 'BAD' case uses a `JwtHandlerAdapter` where the `onPlaintextJwt` method is overriden, so it will not validate the signature. The third and fourth 'GOOD' cases use `parseClaimsJws` method or override the `onPlaintextJws` method.\n\n\n```java\npublic void badJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(token); // BAD: Does not verify the signature\n}\n\npublic void badJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jwt onPlaintextJwt(Jwt jwt) {\n                        return jwt;\n                    }\n                }); // BAD: The handler is called on an unverified JWT\n}\n\npublic void goodJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parseClaimsJws(token) // GOOD: Verify the signature\n                .getBody();\n}\n\npublic void goodJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jws onPlaintextJws(Jws jws) {\n                        return jws;\n                    }\n                }); // GOOD: The handler is called on a verified JWS\n}\n```\n\n## References\n* zofrex: [How I Found An alg=none JWT Vulnerability in the NHS Contact Tracing App](https://www.zofrex.com/blog/2020/10/20/alg-none-jwt-nhs-contact-tracing-app/).\n* Common Weakness Enumeration: [CWE-347](https://cwe.mitre.org/data/definitions/347.html).\n",
+                  "text": "# Missing JWT signature check\nA JSON Web Token (JWT) consists of three parts: header, payload, and signature. The `io.jsonwebtoken.jjwt` library is one of many libraries used for working with JWTs. It offers different methods for parsing tokens like `parse`, `parseClaimsJws`, and `parsePlaintextJws`. The last two correctly verify that the JWT is properly signed. This is done by computing the signature of the combination of header and payload and comparing the locally computed signature with the signature part of the JWT.\n\nTherefore it is necessary to provide the `JwtParser` with a key that is used for signature validation. Unfortunately the `parse` method **accepts** a JWT whose signature is empty although a signing key has been set for the parser. This means that an attacker can create arbitrary JWTs that will be accepted if this method is used.\n\n\n## Recommendation\nAlways verify the signature by using either the `parseClaimsJws` and `parsePlaintextJws` methods or by overriding the `onPlaintextJws` or `onClaimsJws` of `JwtHandlerAdapter`.\n\n\n## Example\nThe following example shows four cases where a signing key is set for a parser. In the first 'BAD' case the `parse` method is used, which will not validate the signature. The second 'BAD' case uses a `JwtHandlerAdapter` where the `onPlaintextJwt` method is overriden, so it will not validate the signature. The third and fourth 'GOOD' cases use `parseClaimsJws` method or override the `onPlaintextJws` method.\n\n\n```java\npublic void badJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(token); // BAD: Does not verify the signature\n}\n\npublic void badJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jwt onPlaintextJwt(Jwt jwt) {\n                        return jwt;\n                    }\n                }); // BAD: The handler is called on an unverified JWT\n}\n\npublic void goodJwt(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parseClaimsJws(token) // GOOD: Verify the signature\n                .getBody();\n}\n\npublic void goodJwtHandler(String token) {\n    Jwts.parserBuilder()\n                .setSigningKey(\"someBase64EncodedKey\").build()\n                .parse(plaintextJwt, new JwtHandlerAdapter>() {\n                    @Override\n                    public Jws onPlaintextJws(Jws jws) {\n                        return jws;\n                    }\n                }); // GOOD: The handler is called on a verified JWS\n}\n```\n\n## References\n* zofrex: [How I Found An alg=none JWT Vulnerability in the NHS Contact Tracing App](https://www.zofrex.com/blog/2020/10/20/alg-none-jwt-nhs-contact-tracing-app/).\n* Common Weakness Enumeration: [CWE-347](https://cwe.mitre.org/data/definitions/347.html).\n"
+                },
+                "id": "java/missing-jwt-signature-check",
+                "name": "java/missing-jwt-signature-check",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-347/MissingJWTSignatureCheck.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-347",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Missing JWT signature check"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled MVEL expression may lead to remote code execution."
+                },
+                "help": {
+                  "markdown": "# Expression language injection (MVEL)\nMVEL is an expression language based on Java-syntax, which offers many features including invocation of methods available in the JVM. If a MVEL expression is built using attacker-controlled data, and then evaluated, then it may allow attackers to run arbitrary code.\n\n\n## Recommendation\nIncluding user input in a MVEL expression should be avoided.\n\n\n## Example\nIn the following sample, the first example uses untrusted data to build a MVEL expression and then runs it in the default context. In the second example, the untrusted data is validated with a custom method that checks that the expression does not contain unexpected code before evaluating it.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // BAD: the user-provided expression is directly evaluated\n    MVEL.eval(expression);\n  }\n}\n\npublic void safeEvaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // GOOD: the user-provided expression is validated before evaluation\n    validateExpression(expression);\n    MVEL.eval(expression);\n  }\n}\n\nprivate void validateExpression(String expression) {\n  // Validate that the expression does not contain unexpected code.\n  // For instance, this can be done with allow-lists or deny-lists of code patterns.\n}\n```\n\n## References\n* MVEL Documentation: [Language Guide for 2.0](http://mvel.documentnode.com/).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Expression language injection (MVEL)\nMVEL is an expression language based on Java-syntax, which offers many features including invocation of methods available in the JVM. If a MVEL expression is built using attacker-controlled data, and then evaluated, then it may allow attackers to run arbitrary code.\n\n\n## Recommendation\nIncluding user input in a MVEL expression should be avoided.\n\n\n## Example\nIn the following sample, the first example uses untrusted data to build a MVEL expression and then runs it in the default context. In the second example, the untrusted data is validated with a custom method that checks that the expression does not contain unexpected code before evaluating it.\n\n\n```java\npublic void evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // BAD: the user-provided expression is directly evaluated\n    MVEL.eval(expression);\n  }\n}\n\npublic void safeEvaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n    new InputStreamReader(socket.getInputStream()))) {\n  \n    String expression = reader.readLine();\n    // GOOD: the user-provided expression is validated before evaluation\n    validateExpression(expression);\n    MVEL.eval(expression);\n  }\n}\n\nprivate void validateExpression(String expression) {\n  // Validate that the expression does not contain unexpected code.\n  // For instance, this can be done with allow-lists or deny-lists of code patterns.\n}\n```\n\n## References\n* MVEL Documentation: [Language Guide for 2.0](http://mvel.documentnode.com/).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/mvel-expression-injection",
+                "name": "java/mvel-expression-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/MvelInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Expression language injection (MVEL)"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Disabling HTTP header validation makes code vulnerable to attack by header splitting if user input is written directly to an HTTP header."
+                },
+                "help": {
+                  "markdown": "# Disabled Netty HTTP header validation\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-93](https://cwe.mitre.org/data/definitions/93.html).\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n",
+                  "text": "# Disabled Netty HTTP header validation\nDirectly writing user input (for example, an HTTP request parameter) to an HTTP header can lead to an HTTP request-splitting or response-splitting vulnerability.\n\nHTTP response splitting can lead to vulnerabilities such as XSS and cache poisoning.\n\nHTTP request splitting can allow an attacker to inject an additional HTTP request into a client's outgoing socket connection. This can allow an attacker to perform an SSRF-like attack.\n\nIn the context of a servlet container, if the user input includes blank lines and the servlet container does not escape the blank lines, then a remote user can cause the response to turn into two separate responses. The remote user can then control one or more responses, which is also HTTP response splitting.\n\n\n## Recommendation\nGuard against HTTP header splitting in the same way as guarding against cross-site scripting. Before passing any data into HTTP headers, either check the data for special characters, or escape any special characters that are present.\n\nIf the code calls Netty API's directly, ensure that the `validateHeaders` parameter is set to `true`.\n\n\n## Example\nThe following example shows the 'name' parameter being written to a cookie in two different ways. The first way writes it directly to the cookie, and thus is vulnerable to response-splitting attacks. The second way first removes all special characters, thus avoiding the potential problem.\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: setting a cookie with an unvalidated parameter\n\t\tCookie cookie = new Cookie(\"name\", request.getParameter(\"name\"));\n\t\tresponse.addCookie(cookie);\n\n\t\t// GOOD: remove special characters before putting them in the header\n\t\tString name = removeSpecial(request.getParameter(\"name\"));\n\t\tCookie cookie2 = new Cookie(\"name\", name);\n\t\tresponse.addCookie(cookie2);\n\t}\n\n\tprivate static String removeSpecial(String str) {\n\t\treturn str.replaceAll(\"[^a-zA-Z ]\", \"\");\n\t}\n}\n\n```\n\n## Example\nThe following example shows the use of the library 'netty' with HTTP response-splitting verification configurations. The second way will verify the parameters before using them to build the HTTP response.\n\n\n```java\nimport io.netty.handler.codec.http.DefaultHttpHeaders;\n\npublic class ResponseSplitting {\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal response splitting verification\n    private final DefaultHttpResponse badResponse = new DefaultHttpResponse(version, httpResponseStatus, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpResponse goodResponse = new DefaultHttpResponse(version, httpResponseStatus);\n}\n\n```\n\n## Example\nThe following example shows the use of the netty library with configurations for verification of HTTP request splitting. The second recommended approach in the example verifies the parameters before using them to build the HTTP request.\n\n\n```java\npublic class NettyRequestSplitting {\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpHeaders badHeaders = new DefaultHttpHeaders(false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpHeaders goodHeaders = new DefaultHttpHeaders();\n\n    // BAD: Disables the internal request splitting verification\n    private final DefaultHttpRequest badRequest = new DefaultHttpRequest(httpVersion, method, uri, false);\n\n    // GOOD: Verifies headers passed don't contain CRLF characters\n    private final DefaultHttpRequest goodResponse = new DefaultHttpRequest(httpVersion, method, uri);\n}\n\n```\n\n## References\n* SecLists.org: [HTTP response splitting](https://seclists.org/bugtraq/2005/Apr/187).\n* OWASP: [HTTP Response Splitting](https://www.owasp.org/index.php/HTTP_Response_Splitting).\n* Wikipedia: [HTTP response splitting](http://en.wikipedia.org/wiki/HTTP_response_splitting).\n* CAPEC: [CAPEC-105: HTTP Request Splitting](https://capec.mitre.org/data/definitions/105.html)\n* Common Weakness Enumeration: [CWE-93](https://cwe.mitre.org/data/definitions/93.html).\n* Common Weakness Enumeration: [CWE-113](https://cwe.mitre.org/data/definitions/113.html).\n"
+                },
+                "id": "java/netty-http-request-or-response-splitting",
+                "name": "java/netty-http-request-or-response-splitting",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-113",
+                    "external/cwe/cwe-93",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Disabled Netty HTTP header validation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of OGNL Expression Language statement with user-controlled input can lead to execution of arbitrary code."
+                },
+                "help": {
+                  "markdown": "# OGNL Expression Language statement with user-controlled input\nObject-Graph Navigation Language (OGNL) is an open-source Expression Language (EL) for Java. OGNL can create or change executable code, consequently it can introduce critical security flaws to any application that uses it. Evaluation of unvalidated expressions is a common flaw in OGNL. This exposes the properties of Java objects to modification by an attacker and may allow them to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to avoid evaluating untrusted ONGL expressions. If user-provided OGNL expressions must be evaluated, do this in a sandbox and validate the expressions before evaluation.\n\n\n## Example\nIn the following examples, the code accepts an OGNL expression from the user and evaluates it.\n\nIn the first example, the user-provided OGNL expression is parsed and evaluated.\n\nThe second example validates the expression and evaluates it inside a sandbox. You can add a sandbox by setting a system property, as shown in the example, or by adding `-Dognl.security.manager` to JVM arguments.\n\n\n```java\nimport ognl.Ognl;\nimport ognl.OgnlException;\n\npublic void evaluate(HttpServletRequest request, Object root) throws OgnlException {\n  String expression = request.getParameter(\"expression\");\n\n  // BAD: User provided expression is evaluated\n  Ognl.getValue(expression, root);\n  \n  // GOOD: The name is validated and expression is evaluated in sandbox\n  System.setProperty(\"ognl.security.manager\", \"\"); // Or add -Dognl.security.manager to JVM args\n  if (isValid(expression)) {\n    Ognl.getValue(expression, root);\n  } else {\n    // Reject the request\n  }\n}\n\npublic void isValid(Strig expression) {\n  // Custom method to validate the expression.\n  // For instance, make sure it doesn't include unexpected code.\n}\n\n```\n\n## References\n* Apache Commons: [Apache Commons OGNL](https://commons.apache.org/proper/commons-ognl/).\n* Struts security: [Proactively protect from OGNL Expression Injections attacks](https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable).\n* Common Weakness Enumeration: [CWE-917](https://cwe.mitre.org/data/definitions/917.html).\n",
+                  "text": "# OGNL Expression Language statement with user-controlled input\nObject-Graph Navigation Language (OGNL) is an open-source Expression Language (EL) for Java. OGNL can create or change executable code, consequently it can introduce critical security flaws to any application that uses it. Evaluation of unvalidated expressions is a common flaw in OGNL. This exposes the properties of Java objects to modification by an attacker and may allow them to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to avoid evaluating untrusted ONGL expressions. If user-provided OGNL expressions must be evaluated, do this in a sandbox and validate the expressions before evaluation.\n\n\n## Example\nIn the following examples, the code accepts an OGNL expression from the user and evaluates it.\n\nIn the first example, the user-provided OGNL expression is parsed and evaluated.\n\nThe second example validates the expression and evaluates it inside a sandbox. You can add a sandbox by setting a system property, as shown in the example, or by adding `-Dognl.security.manager` to JVM arguments.\n\n\n```java\nimport ognl.Ognl;\nimport ognl.OgnlException;\n\npublic void evaluate(HttpServletRequest request, Object root) throws OgnlException {\n  String expression = request.getParameter(\"expression\");\n\n  // BAD: User provided expression is evaluated\n  Ognl.getValue(expression, root);\n  \n  // GOOD: The name is validated and expression is evaluated in sandbox\n  System.setProperty(\"ognl.security.manager\", \"\"); // Or add -Dognl.security.manager to JVM args\n  if (isValid(expression)) {\n    Ognl.getValue(expression, root);\n  } else {\n    // Reject the request\n  }\n}\n\npublic void isValid(Strig expression) {\n  // Custom method to validate the expression.\n  // For instance, make sure it doesn't include unexpected code.\n}\n\n```\n\n## References\n* Apache Commons: [Apache Commons OGNL](https://commons.apache.org/proper/commons-ognl/).\n* Struts security: [Proactively protect from OGNL Expression Injections attacks](https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable).\n* Common Weakness Enumeration: [CWE-917](https://cwe.mitre.org/data/definitions/917.html).\n"
+                },
+                "id": "java/ognl-injection",
+                "name": "java/ognl-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-917/OgnlInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-917",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "OGNL Expression Language statement with user-controlled input"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Overly permissive regular expression ranges match a wider range of characters than intended. This may allow an attacker to bypass a filter or sanitizer."
+                },
+                "help": {
+                  "markdown": "# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```java\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-f]{6}\", color);\n    }\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-F]{6}\", color);\n    }\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n",
+                  "text": "# Overly permissive regular expression range\nIt's easy to write a regular expression range that matches a wider range of characters than you intended. For example, `/[a-zA-z]/` matches all lowercase and all uppercase letters, as you would expect, but it also matches the characters: `` [ \\ ] ^ _ ` ``.\n\nAnother common problem is failing to escape the dash character in a regular expression. An unescaped dash is interpreted as part of a range. For example, in the character class `[a-zA-Z0-9%=.,-_]` the last character range matches the 55 characters between `,` and `_` (both included), which overlaps with the range `[0-9]` and is clearly not intended by the writer.\n\n\n## Recommendation\nAvoid any confusion about which characters are included in the range by writing unambiguous regular expressions. Always check that character ranges match only the expected characters.\n\n\n## Example\nThe following example code is intended to check whether a string is a valid 6 digit hex color.\n\n```java\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-f]{6}\", color);\n    }\n}\n\n```\nHowever, the `A-f` range is overly large and matches every uppercase character. It would parse a \"color\" like `#XXYYZZ` as valid.\n\nThe fix is to use an uppercase `A-F` range instead.\n\n```javascript\n\nimport java.util.regex.Pattern\npublic class Tester {\n    public static boolean is_valid_hex_color(String color) {\n        return Pattern.matches(\"#[0-9a-fA-F]{6}\", color);\n    }\n}\n\n```\n\n## References\n* GitHub Advisory Database: [CVE-2021-42740: Improper Neutralization of Special Elements used in a Command in Shell-quote](https://github.com/advisories/GHSA-g4rg-993r-mgx7)\n* wh0.github.io: [Exploiting CVE-2021-42740](https://wh0.github.io/2021/10/28/shell-quote-rce-exploiting.html)\n* Yosuke Ota: [no-obscure-range](https://ota-meshi.github.io/eslint-plugin-regexp/rules/no-obscure-range.html)\n* Paul Boyd: [The regex \\[,-.\\]](https://pboyd.io/posts/comma-dash-dot/)\n* Common Weakness Enumeration: [CWE-20](https://cwe.mitre.org/data/definitions/20.html).\n"
+                },
+                "id": "java/overly-large-range",
+                "name": "java/overly-large-range",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-020/OverlyLargeRange.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "correctness",
+                    "external/cwe/cwe-020",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Overly permissive regular expression range"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A prefix used to check that a canonicalised path falls within another must be slash-terminated."
+                },
+                "help": {
+                  "markdown": "# Partial path traversal vulnerability\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow access to siblings of `DIR`.\n\nSee also `java/partial-path-traversal-from-remote`, which is similar to this query but only flags instances with evidence of remote exploitability.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n",
+                  "text": "# Partial path traversal vulnerability\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow access to siblings of `DIR`.\n\nSee also `java/partial-path-traversal-from-remote`, which is similar to this query but only flags instances with evidence of remote exploitability.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n"
+                },
+                "id": "java/partial-path-traversal",
+                "name": "java/partial-path-traversal",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-023/PartialPathTraversal.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-023",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Partial path traversal vulnerability"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A prefix used to check that a canonicalised path falls within another must be slash-terminated."
+                },
+                "help": {
+                  "markdown": "# Partial path traversal vulnerability from remote\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow accessing siblings of `DIR`.\n\nSee also `java/partial-path-traversal`, which is similar to this query, but may also flag non-remotely-exploitable instances of partial path traversal vulnerabilities.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n",
+                  "text": "# Partial path traversal vulnerability from remote\nA common way to check that a user-supplied path `SUBDIR` falls inside a directory `DIR` is to use `getCanonicalPath()` to remove any path-traversal elements and then check that `DIR` is a prefix. However, if `DIR` is not slash-terminated, this can unexpectedly allow accessing siblings of `DIR`.\n\nSee also `java/partial-path-traversal`, which is similar to this query, but may also flag non-remotely-exploitable instances of partial path traversal vulnerabilities.\n\n\n## Recommendation\nIf the user should only access items within a certain directory `DIR`, ensure that `DIR` is slash-terminated before checking that `DIR` is a prefix of the user-provided path, `SUBDIR`. Note, Java's `getCanonicalPath()` returns a **non**-slash-terminated path string, so a slash must be added to `DIR` if that method is used.\n\n\n## Example\nIn this example, the `if` statement checks if `parent.getCanonicalPath()` is a prefix of `dir.getCanonicalPath()`. However, `parent.getCanonicalPath()` is not slash-terminated. This means that users that supply `dir` may be also allowed to access siblings of `parent` and not just children of `parent`, which is a security issue.\n\n\n```java\npublic class PartialPathTraversalBad {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\nIn this example, the `if` statement checks if `parent.toPath()` is a prefix of `dir.normalize()`. Because `Path#startsWith` does the correct check that `dir` is a child of `parent`, users will not be able to access siblings of `parent`, as desired.\n\n\n```java\nimport java.io.File;\n\npublic class PartialPathTraversalGood {\n    public void example(File dir, File parent) throws IOException {\n        if (!dir.toPath().normalize().startsWith(parent.toPath())) {\n            throw new IOException(\"Path traversal attempt: \" + dir.getCanonicalPath());\n        }\n    }\n}\n\n```\n\n## References\n* OWASP: [Partial Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* CVE-2022-23457: [ ESAPI Vulnerability Report](https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n"
+                },
+                "id": "java/partial-path-traversal-from-remote",
+                "name": "java/partial-path-traversal-from-remote",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-023/PartialPathTraversalFromRemote.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-023",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Partial path traversal vulnerability from remote"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Accessing paths influenced by users can allow an attacker to access unexpected resources."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled data used in path expression\nAccessing paths controlled by users can allow an attacker to access unexpected resources. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nPaths that are naively constructed from data controlled by a user may be absolute paths, or may contain unexpected special characters such as \"..\". Such a path could point anywhere on the file system.\n\n\n## Recommendation\nValidate user input before using it to construct a file path.\n\nCommon validation methods include checking that the normalized path is relative and does not contain any \"..\" components, or checking that the path is contained within a safe folder. The method you should use depends on how the path is used in the application, and whether the path should be a single path component.\n\nIf the path should be a single path component (such as a file name), you can check for the existence of any path separators (\"/\" or \"\\\\\"), or \"..\" sequences in the input, and reject the input if any are found.\n\nNote that removing \"../\" sequences is *not* sufficient, since the input could still contain a path separator followed by \"..\". For example, the input \".../...//\" would still result in the string \"../\" if only \"../\" sequences are removed.\n\nFinally, the simplest (but most restrictive) option is to use an allow list of safe patterns and make sure that the user input matches one of these patterns.\n\n\n## Example\nIn this example, a file name is read from a `java.net.Socket` and then used to access a file and send it back over the socket. However, a malicious user could enter a file name anywhere on the file system, such as \"/etc/passwd\" or \"../../../etc/passwd\".\n\n\n```java\npublic void sendUserFile(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// BAD: read from a file without checking its path\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n\n```\nIf the input should only be a file name, you can check that it doesn't contain any path separators or \"..\" sequences.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// GOOD: ensure that the filename has no path separators or parent directory references\n\tif (filename.contains(\"..\") || filename.contains(\"/\") || filename.contains(\"\\\\\")) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\t\n}\n\n```\nIf the input should be within a specific directory, you can check that the resolved path is still contained within that directory.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\n\tPath publicFolder = Paths.get(\"/home/\" + user + \"/public\").normalize().toAbsolutePath();\n\tPath filePath = publicFolder.resolve(filename).normalize().toAbsolutePath();\n\n\t// GOOD: ensure that the path stays within the public folder\n\tif (!filePath.startsWith(publicFolder + File.separator)) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filePath.toString()));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n```\n\n## References\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-36](https://cwe.mitre.org/data/definitions/36.html).\n* Common Weakness Enumeration: [CWE-73](https://cwe.mitre.org/data/definitions/73.html).\n",
+                  "text": "# Uncontrolled data used in path expression\nAccessing paths controlled by users can allow an attacker to access unexpected resources. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nPaths that are naively constructed from data controlled by a user may be absolute paths, or may contain unexpected special characters such as \"..\". Such a path could point anywhere on the file system.\n\n\n## Recommendation\nValidate user input before using it to construct a file path.\n\nCommon validation methods include checking that the normalized path is relative and does not contain any \"..\" components, or checking that the path is contained within a safe folder. The method you should use depends on how the path is used in the application, and whether the path should be a single path component.\n\nIf the path should be a single path component (such as a file name), you can check for the existence of any path separators (\"/\" or \"\\\\\"), or \"..\" sequences in the input, and reject the input if any are found.\n\nNote that removing \"../\" sequences is *not* sufficient, since the input could still contain a path separator followed by \"..\". For example, the input \".../...//\" would still result in the string \"../\" if only \"../\" sequences are removed.\n\nFinally, the simplest (but most restrictive) option is to use an allow list of safe patterns and make sure that the user input matches one of these patterns.\n\n\n## Example\nIn this example, a file name is read from a `java.net.Socket` and then used to access a file and send it back over the socket. However, a malicious user could enter a file name anywhere on the file system, such as \"/etc/passwd\" or \"../../../etc/passwd\".\n\n\n```java\npublic void sendUserFile(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// BAD: read from a file without checking its path\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n\n```\nIf the input should only be a file name, you can check that it doesn't contain any path separators or \"..\" sequences.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\t// GOOD: ensure that the filename has no path separators or parent directory references\n\tif (filename.contains(\"..\") || filename.contains(\"/\") || filename.contains(\"\\\\\")) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filename));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\t\n}\n\n```\nIf the input should be within a specific directory, you can check that the resolved path is still contained within that directory.\n\n\n```java\npublic void sendUserFileGood(Socket sock, String user) {\n\tBufferedReader filenameReader = new BufferedReader(\n\t\t\tnew InputStreamReader(sock.getInputStream(), \"UTF-8\"));\n\tString filename = filenameReader.readLine();\n\n\tPath publicFolder = Paths.get(\"/home/\" + user + \"/public\").normalize().toAbsolutePath();\n\tPath filePath = publicFolder.resolve(filename).normalize().toAbsolutePath();\n\n\t// GOOD: ensure that the path stays within the public folder\n\tif (!filePath.startsWith(publicFolder + File.separator)) {\n\t\tthrow new IllegalArgumentException(\"Invalid filename\");\n\t}\n\tBufferedReader fileReader = new BufferedReader(new FileReader(filePath.toString()));\n\tString fileLine = fileReader.readLine();\n\twhile(fileLine != null) {\n\t\tsock.getOutputStream().write(fileLine.getBytes());\n\t\tfileLine = fileReader.readLine();\n\t}\n}\n```\n\n## References\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n* Common Weakness Enumeration: [CWE-23](https://cwe.mitre.org/data/definitions/23.html).\n* Common Weakness Enumeration: [CWE-36](https://cwe.mitre.org/data/definitions/36.html).\n* Common Weakness Enumeration: [CWE-73](https://cwe.mitre.org/data/definitions/73.html).\n"
+                },
+                "id": "java/path-injection",
+                "name": "java/path-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-022/TaintedPath.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-022",
+                    "external/cwe/cwe-023",
+                    "external/cwe/cwe-036",
+                    "external/cwe/cwe-073",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled data used in path expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A regular expression that can require polynomial time to match may be vulnerable to denial-of-service attacks."
+                },
+                "help": {
+                  "markdown": "# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```java\n\nPattern.compile(\"^\\\\s+|\\\\s+$\").matcher(text).replaceAll(\"\") // BAD\n```\nThe sub-expression `\"\\\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`\"^\\\\s+|(? 1000) {\n    throw new IllegalArgumentException(\"Input too long\");\n}\n\nPattern.matches(\"^(\\\\+|-)?(\\\\d+|(\\\\d*\\\\.\\\\d*))?(E|e)?([-+])?(\\\\d+)?$\", str); \n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n",
+                  "text": "# Polynomial regular expression used on uncontrolled data\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this use of a regular expression, which removes all leading and trailing whitespace in a string:\n\n```java\n\nPattern.compile(\"^\\\\s+|\\\\s+$\").matcher(text).replaceAll(\"\") // BAD\n```\nThe sub-expression `\"\\\\s+$\"` will match the whitespace characters in `text` from left to right, but it can start matching anywhere within a whitespace sequence. This is problematic for strings that do **not** end with a whitespace character. Such a string will force the regular expression engine to process each whitespace sequence once per whitespace character in the sequence.\n\nThis ultimately means that the time cost of trimming a string is quadratic in the length of the string. So a string like `\"a b\"` will take milliseconds to process, but a similar string with a million spaces instead of just one will take several minutes.\n\nAvoid this problem by rewriting the regular expression to not contain the ambiguity about when to start matching whitespace sequences. For instance, by using a negative look-behind (`\"^\\\\s+|(? 1000) {\n    throw new IllegalArgumentException(\"Input too long\");\n}\n\nPattern.matches(\"^(\\\\+|-)?(\\\\d+|(\\\\d*\\\\.\\\\d*))?(E|e)?([-+])?(\\\\d+)?$\", str); \n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"
+                },
+                "id": "java/polynomial-redos",
+                "name": "java/polynomial-redos",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-730/PolynomialReDoS.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-1333",
+                    "external/cwe/cwe-400",
+                    "external/cwe/cwe-730",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Polynomial regular expression used on uncontrolled data"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Certain standard library routines are dangerous to call."
+                },
+                "help": {
+                  "markdown": "# Use of a potentially dangerous function\nThis rule finds calls to methods that are dangerous to use. Currently, it checks for calls to `Thread.stop`.\n\nStopping a thread with `Thread.stop` causes it to receive a `ThreadDeath` exception. That exception propagates up the stack, releasing all monitors that the thread was holding. In some cases the relevant code will be protected by catching the `ThreadDeath` exception and cleaning up, but because the exception can potentially be thrown from so very many locations, it is impractical to catch all such cases. As a result, calling `Thread.stop` is likely to result in corrupt data.\n\n\n## Recommendation\nThe best solution is usually to provide an alternate communication mechanism for the thread that might need to be interrupted early. For example, Oracle gives the following example of using a volatile variable to communicate whether the worker thread should exit:\n\n\n```java\nprivate volatile Thread blinker;\n\npublic void stop() {\n    blinker = null;\n}\n\npublic void run() {\n    Thread thisThread = Thread.currentThread();\n    while (blinker == thisThread) {\n        try {\n            Thread.sleep(interval);\n        } catch (InterruptedException e){\n        }\n        repaint();\n    }\n}\n\n```\nIt is also possible to use `Thread.interrupt` and to catch and handle `InterruptedException` when it occurs. However, it can be difficult to handle an `InterruptedException` everywhere it might occur; for example, the sample code above simply discards the exception rather than actually exiting the thread.\n\nAnother strategy is to use message passing, for example via a `BlockingQueue`. In addition to passing the worker thread its ordinary work via such a message queue, the worker can be asked to exit by a particular kind of message being sent on the queue.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [THI05-J. Do not use Thread.stop() to terminate threads](https://wiki.sei.cmu.edu/confluence/display/java/THI05-J.+Do+not+use+Thread.stop()+to+terminate+threads).\n* Java API Specification: [Java Thread Primitive Deprecation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/doc-files/threadPrimitiveDeprecation.html).\n* Java API Specification: [Thread.interrupt](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html#interrupt()), [BlockingQueue](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/BlockingQueue.html).\n* Common Weakness Enumeration: [CWE-676](https://cwe.mitre.org/data/definitions/676.html).\n",
+                  "text": "# Use of a potentially dangerous function\nThis rule finds calls to methods that are dangerous to use. Currently, it checks for calls to `Thread.stop`.\n\nStopping a thread with `Thread.stop` causes it to receive a `ThreadDeath` exception. That exception propagates up the stack, releasing all monitors that the thread was holding. In some cases the relevant code will be protected by catching the `ThreadDeath` exception and cleaning up, but because the exception can potentially be thrown from so very many locations, it is impractical to catch all such cases. As a result, calling `Thread.stop` is likely to result in corrupt data.\n\n\n## Recommendation\nThe best solution is usually to provide an alternate communication mechanism for the thread that might need to be interrupted early. For example, Oracle gives the following example of using a volatile variable to communicate whether the worker thread should exit:\n\n\n```java\nprivate volatile Thread blinker;\n\npublic void stop() {\n    blinker = null;\n}\n\npublic void run() {\n    Thread thisThread = Thread.currentThread();\n    while (blinker == thisThread) {\n        try {\n            Thread.sleep(interval);\n        } catch (InterruptedException e){\n        }\n        repaint();\n    }\n}\n\n```\nIt is also possible to use `Thread.interrupt` and to catch and handle `InterruptedException` when it occurs. However, it can be difficult to handle an `InterruptedException` everywhere it might occur; for example, the sample code above simply discards the exception rather than actually exiting the thread.\n\nAnother strategy is to use message passing, for example via a `BlockingQueue`. In addition to passing the worker thread its ordinary work via such a message queue, the worker can be asked to exit by a particular kind of message being sent on the queue.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [THI05-J. Do not use Thread.stop() to terminate threads](https://wiki.sei.cmu.edu/confluence/display/java/THI05-J.+Do+not+use+Thread.stop()+to+terminate+threads).\n* Java API Specification: [Java Thread Primitive Deprecation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/doc-files/threadPrimitiveDeprecation.html).\n* Java API Specification: [Thread.interrupt](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html#interrupt()), [BlockingQueue](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/BlockingQueue.html).\n* Common Weakness Enumeration: [CWE-676](https://cwe.mitre.org/data/definitions/676.html).\n"
+                },
+                "id": "java/potentially-dangerous-function",
+                "name": "java/potentially-dangerous-function",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-676/PotentiallyDangerousFunction.ql",
+                  "security-severity": "10",
+                  "tags": [
+                    "external/cwe/cwe-676",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a potentially dangerous function"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using broken or weak cryptographic algorithms can allow an attacker to compromise security."
+                },
+                "help": {
+                  "markdown": "# Use of a potentially broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n",
+                  "text": "# Use of a potentially broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n"
+                },
+                "id": "java/potentially-weak-cryptographic-algorithm",
+                "name": "java/potentially-weak-cryptographic-algorithm",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-327/MaybeBrokenCryptoAlgorithm.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-327",
+                    "external/cwe/cwe-328",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a potentially broken or risky cryptographic algorithm"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using a predictable seed in a pseudo-random number generator can lead to predictability of the numbers generated by it."
+                },
+                "help": {
+                  "markdown": "# Use of a predictable seed in a secure random number generator\nUsing a predictable seed in a pseudo-random number generator can lead to predictability of the numbers generated by it.\n\n\n## Recommendation\nIf the predictability of the pseudo-random number generator does not matter then consider using the faster `Random` class from `java.util`. If it is important that the pseudo-random number generator produces completely unpredictable values then either let the generator securely seed itself by not specifying a seed or specify a randomly generated, unpredictable seed.\n\n\n## Example\nIn the first example shown here, a constant value is used as a seed. Depending on the implementation of ` SecureRandom`, this could lead to the same random number being generated each time the code is executed.\n\nIn the second example shown here, the system time is used as a seed. Depending on the implementation of ` SecureRandom`, if an attacker knows what time the code was run, they could predict the generated random number.\n\nIn the third example shown here, the random number generator is allowed to generate its own seed, which it will do in a secure way.\n\n\n```java\nSecureRandom prng = new SecureRandom();\nint randomData = 0;\n\n// BAD: Using a constant value as a seed for a random number generator means all numbers it generates are predictable.\nprng.setSeed(12345L);\nrandomData = prng.next(32);\n\n// BAD: System.currentTimeMillis() returns the system time which is predictable.\nprng.setSeed(System.currentTimeMillis());\nrandomData = prng.next(32);\n\n// GOOD: SecureRandom implementations seed themselves securely by default.\nprng = new SecureRandom();\nrandomData = prng.next(32);\n\n```\n\n## References\n* Common Weakness Enumeration: [CWE-335](https://cwe.mitre.org/data/definitions/335.html).\n* Common Weakness Enumeration: [CWE-337](https://cwe.mitre.org/data/definitions/337.html).\n",
+                  "text": "# Use of a predictable seed in a secure random number generator\nUsing a predictable seed in a pseudo-random number generator can lead to predictability of the numbers generated by it.\n\n\n## Recommendation\nIf the predictability of the pseudo-random number generator does not matter then consider using the faster `Random` class from `java.util`. If it is important that the pseudo-random number generator produces completely unpredictable values then either let the generator securely seed itself by not specifying a seed or specify a randomly generated, unpredictable seed.\n\n\n## Example\nIn the first example shown here, a constant value is used as a seed. Depending on the implementation of ` SecureRandom`, this could lead to the same random number being generated each time the code is executed.\n\nIn the second example shown here, the system time is used as a seed. Depending on the implementation of ` SecureRandom`, if an attacker knows what time the code was run, they could predict the generated random number.\n\nIn the third example shown here, the random number generator is allowed to generate its own seed, which it will do in a secure way.\n\n\n```java\nSecureRandom prng = new SecureRandom();\nint randomData = 0;\n\n// BAD: Using a constant value as a seed for a random number generator means all numbers it generates are predictable.\nprng.setSeed(12345L);\nrandomData = prng.next(32);\n\n// BAD: System.currentTimeMillis() returns the system time which is predictable.\nprng.setSeed(System.currentTimeMillis());\nrandomData = prng.next(32);\n\n// GOOD: SecureRandom implementations seed themselves securely by default.\nprng = new SecureRandom();\nrandomData = prng.next(32);\n\n```\n\n## References\n* Common Weakness Enumeration: [CWE-335](https://cwe.mitre.org/data/definitions/335.html).\n* Common Weakness Enumeration: [CWE-337](https://cwe.mitre.org/data/definitions/337.html).\n"
+                },
+                "id": "java/predictable-seed",
+                "name": "java/predictable-seed",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-335/PredictableSeed.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-335",
+                    "external/cwe/cwe-337",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a predictable seed in a secure random number generator"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A regular expression that requires exponential time to match certain inputs can be a performance bottleneck, and may be vulnerable to denial-of-service attacks."
+                },
+                "help": {
+                  "markdown": "# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this regular expression:\n\n```java\n\n^_(__|.)+_$\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```java\n\n^_(__|[^_])+_$\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n",
+                  "text": "# Inefficient regular expression\nSome regular expressions take a long time to match certain input strings to the point where the time it takes to match a string of length *n* is proportional to *nk* or even *2n*. Such regular expressions can negatively affect performance, or even allow a malicious user to perform a Denial of Service (\"DoS\") attack by crafting an expensive input string for the regular expression to match.\n\nThe regular expression engine provided by Java uses a backtracking non-deterministic finite automata to implement regular expression matching. While this approach is space-efficient and allows supporting advanced features like capture groups, it is not time-efficient in general. The worst-case time complexity of such an automaton can be polynomial or even exponential, meaning that for strings of a certain shape, increasing the input length by ten characters may make the automaton about 1000 times slower.\n\nTypically, a regular expression is affected by this problem if it contains a repetition of the form `r*` or `r+` where the sub-expression `r` is ambiguous in the sense that it can match some string in multiple ways. More information about the precise circumstances can be found in the references.\n\nNote that Java versions 9 and above have some mitigations against ReDoS; however they aren't perfect and more complex regular expressions can still be affected by this problem.\n\n\n## Recommendation\nModify the regular expression to remove the ambiguity, or ensure that the strings matched with the regular expression are short enough that the time-complexity does not matter. Alternatively, an alternate regex library that guarantees linear time execution, such as Google's RE2J, may be used.\n\n\n## Example\nConsider this regular expression:\n\n```java\n\n^_(__|.)+_$\n```\nIts sub-expression `\"(__|.)+?\"` can match the string `\"__\"` either by the first alternative `\"__\"` to the left of the `\"|\"` operator, or by two repetitions of the second alternative `\".\"` to the right. Thus, a string consisting of an odd number of underscores followed by some other character will cause the regular expression engine to run for an exponential amount of time before rejecting the input.\n\nThis problem can be avoided by rewriting the regular expression to remove the ambiguity between the two branches of the alternative inside the repetition:\n\n```java\n\n^_(__|[^_])+_$\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Wikipedia: [Time complexity](https://en.wikipedia.org/wiki/Time_complexity).\n* James Kirrage, Asiri Rathnayake, Hayo Thielecke: [Static Analysis for Regular Expression Denial-of-Service Attack](https://arxiv.org/abs/1301.0849).\n* Common Weakness Enumeration: [CWE-1333](https://cwe.mitre.org/data/definitions/1333.html).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"
+                },
+                "id": "java/redos",
+                "name": "java/redos",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-730/ReDoS.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-1333",
+                    "external/cwe/cwe-400",
+                    "external/cwe/cwe-730",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Inefficient regular expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "User input should not be used in regular expressions without first being escaped, otherwise a malicious user may be able to provide a regex that could require exponential time on certain inputs."
+                },
+                "help": {
+                  "markdown": "# Regular expression injection\nConstructing a regular expression with unsanitized user input is dangerous as a malicious user may be able to modify the meaning of the expression. In particular, such a user may be able to provide a regular expression fragment that takes exponential time in the worst case, and use that to perform a Denial of Service attack.\n\n\n## Recommendation\nBefore embedding user input into a regular expression, use a sanitization function such as `Pattern.quote` to escape meta-characters that have special meaning.\n\n\n## Example\nThe following example shows an HTTP request parameter that is used to construct a regular expression.\n\nIn the first case the user-provided regex is not escaped. If a malicious user provides a regex whose worst-case performance is exponential, then this could lead to a Denial of Service.\n\nIn the second case, the user input is escaped using `Pattern.quote` before being included in the regular expression. This ensures that the user cannot insert characters which have a special meaning in regular expressions.\n\n\n```java\nimport java.util.regex.Pattern;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\n\npublic class RegexInjectionDemo extends HttpServlet {\n\n  public boolean badExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // BAD: Unsanitized user input is used to construct a regular expression\n    return input.matches(regex);\n  }\n\n  public boolean goodExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // GOOD: User input is sanitized before constructing the regex\n    return input.matches(Pattern.quote(regex));\n  }\n}\n\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Java API Specification: [Pattern.quote](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html#quote(java.lang.String)).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n",
+                  "text": "# Regular expression injection\nConstructing a regular expression with unsanitized user input is dangerous as a malicious user may be able to modify the meaning of the expression. In particular, such a user may be able to provide a regular expression fragment that takes exponential time in the worst case, and use that to perform a Denial of Service attack.\n\n\n## Recommendation\nBefore embedding user input into a regular expression, use a sanitization function such as `Pattern.quote` to escape meta-characters that have special meaning.\n\n\n## Example\nThe following example shows an HTTP request parameter that is used to construct a regular expression.\n\nIn the first case the user-provided regex is not escaped. If a malicious user provides a regex whose worst-case performance is exponential, then this could lead to a Denial of Service.\n\nIn the second case, the user input is escaped using `Pattern.quote` before being included in the regular expression. This ensures that the user cannot insert characters which have a special meaning in regular expressions.\n\n\n```java\nimport java.util.regex.Pattern;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\n\npublic class RegexInjectionDemo extends HttpServlet {\n\n  public boolean badExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // BAD: Unsanitized user input is used to construct a regular expression\n    return input.matches(regex);\n  }\n\n  public boolean goodExample(javax.servlet.http.HttpServletRequest request) {\n    String regex = request.getParameter(\"regex\");\n    String input = request.getParameter(\"input\");\n\n    // GOOD: User input is sanitized before constructing the regex\n    return input.matches(Pattern.quote(regex));\n  }\n}\n\n```\n\n## References\n* OWASP: [Regular expression Denial of Service - ReDoS](https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS).\n* Wikipedia: [ReDoS](https://en.wikipedia.org/wiki/ReDoS).\n* Java API Specification: [Pattern.quote](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html#quote(java.lang.String)).\n* Common Weakness Enumeration: [CWE-730](https://cwe.mitre.org/data/definitions/730.html).\n* Common Weakness Enumeration: [CWE-400](https://cwe.mitre.org/data/definitions/400.html).\n"
+                },
+                "id": "java/regex-injection",
+                "name": "java/regex-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-730/RegexInjection.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-400",
+                    "external/cwe/cwe-730",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Regular expression injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Executing a command with a relative path is vulnerable to malicious changes in the PATH environment variable."
+                },
+                "help": {
+                  "markdown": "# Executing a command with a relative path\nWhen a command is executed with a relative path, the runtime uses the PATH environment variable to find which executable to run. Therefore, any user who can change the PATH environment variable can cause the software to run a different, malicious executable.\n\n\n## Recommendation\nIn most cases, simply use a command that has an absolute path instead of a relative path.\n\nIn some cases, the location of the executable might be different on different installations. In such cases, consider specifying the location of key executables with some form of configuration. When using this approach, be careful that the configuration system is not itself vulnerable to malicious modifications.\n\n\n## Example\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: relative path\n        Runtime.getRuntime().exec(\"make\");\n        \n        // GOOD: absolute path\n        Runtime.getRuntime().exec(\"/usr/bin/make\");\n\n        // GOOD: build an absolute path from known values\n        Runtime.getRuntime().exec(Paths.MAKE_PREFIX + \"/bin/make\");\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n",
+                  "text": "# Executing a command with a relative path\nWhen a command is executed with a relative path, the runtime uses the PATH environment variable to find which executable to run. Therefore, any user who can change the PATH environment variable can cause the software to run a different, malicious executable.\n\n\n## Recommendation\nIn most cases, simply use a command that has an absolute path instead of a relative path.\n\nIn some cases, the location of the executable might be different on different installations. In such cases, consider specifying the location of key executables with some form of configuration. When using this approach, be careful that the configuration system is not itself vulnerable to malicious modifications.\n\n\n## Example\n\n```java\nclass Test {\n    public static void main(String[] args) {\n        // BAD: relative path\n        Runtime.getRuntime().exec(\"make\");\n        \n        // GOOD: absolute path\n        Runtime.getRuntime().exec(\"/usr/bin/make\");\n\n        // GOOD: build an absolute path from known values\n        Runtime.getRuntime().exec(Paths.MAKE_PREFIX + \"/bin/make\");\n    }\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-78](https://cwe.mitre.org/data/definitions/78.html).\n* Common Weakness Enumeration: [CWE-88](https://cwe.mitre.org/data/definitions/88.html).\n"
+                },
+                "id": "java/relative-path-command",
+                "name": "java/relative-path-command",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-078/ExecRelative.ql",
+                  "security-severity": "5.4",
+                  "tags": [
+                    "external/cwe/cwe-078",
+                    "external/cwe/cwe-088",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Executing a command with a relative path"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using RSA encryption without OAEP padding can result in a padding oracle attack, leading to a weaker encryption."
+                },
+                "help": {
+                  "markdown": "# Use of RSA algorithm without OAEP\nCryptographic algorithms often use padding schemes to make the plaintext less predictable. The OAEP (Optimal Asymmetric Encryption Padding) scheme should be used with RSA encryption. Using an outdated padding scheme such as PKCS1, or no padding at all, can weaken the encryption by making it vulnerable to a padding oracle attack.\n\n\n## Recommendation\nUse the OAEP scheme when using RSA encryption.\n\n\n## Example\nIn the following example, the BAD case shows no padding being used, whereas the GOOD case shows an OAEP scheme being used.\n\n\n```java\n// BAD: No padding scheme is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/NoPadding\");\n...\n\n//GOOD: OAEP padding is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/OAEPWithSHA-1AndMGF1Padding\");\n...\n```\n\n## References\n* [Mobile Security Testing Guide](https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#padding-oracle-attacks-due-to-weaker-padding-or-block-operation-implementations).\n* [The Padding Oracle Attack](https://robertheaton.com/2013/07/29/padding-oracle-attack/).\n* Common Weakness Enumeration: [CWE-780](https://cwe.mitre.org/data/definitions/780.html).\n",
+                  "text": "# Use of RSA algorithm without OAEP\nCryptographic algorithms often use padding schemes to make the plaintext less predictable. The OAEP (Optimal Asymmetric Encryption Padding) scheme should be used with RSA encryption. Using an outdated padding scheme such as PKCS1, or no padding at all, can weaken the encryption by making it vulnerable to a padding oracle attack.\n\n\n## Recommendation\nUse the OAEP scheme when using RSA encryption.\n\n\n## Example\nIn the following example, the BAD case shows no padding being used, whereas the GOOD case shows an OAEP scheme being used.\n\n\n```java\n// BAD: No padding scheme is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/NoPadding\");\n...\n\n//GOOD: OAEP padding is used\nCipher rsa = Cipher.getInstance(\"RSA/ECB/OAEPWithSHA-1AndMGF1Padding\");\n...\n```\n\n## References\n* [Mobile Security Testing Guide](https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#padding-oracle-attacks-due-to-weaker-padding-or-block-operation-implementations).\n* [The Padding Oracle Attack](https://robertheaton.com/2013/07/29/padding-oracle-attack/).\n* Common Weakness Enumeration: [CWE-780](https://cwe.mitre.org/data/definitions/780.html).\n"
+                },
+                "id": "java/rsa-without-oaep",
+                "name": "java/rsa-without-oaep",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-780/RsaWithoutOaep.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-780",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of RSA algorithm without OAEP"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Writing sensitive information to log files can allow that information to be leaked to an attacker more easily."
+                },
+                "help": {
+                  "markdown": "# Insertion of sensitive information into log files\nInformation written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information. Third-party logging utilities like Log4J and SLF4J are widely used in Java projects. When sensitive information is written to logs without properly set logging levels, it is accessible to potential attackers who can use it to gain access to file storage.\n\n\n## Recommendation\nDo not write secrets into the log files and enforce proper logging level control.\n\n\n## Example\nThe following example shows two ways of logging sensitive information. In the 'BAD' case, the credentials are simply written to a debug log. In the 'GOOD' case, the credentials are never written to debug logs.\n\n\n```java\npublic static void main(String[] args) {\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n\n        String password = \"Pass@0rd\";\n\n        // BAD: user password is written to debug log\n        logger.debug(\"User password is \"+password);\n    }\n\t\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n  \n        String password = \"Pass@0rd\";\n\n        // GOOD: user password is never written to debug log\n        logger.debug(\"User password changed\")\n    }\n}\n\n```\n\n## References\n* [OWASP Logging Guide](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html)\n* Common Weakness Enumeration: [CWE-532](https://cwe.mitre.org/data/definitions/532.html).\n",
+                  "text": "# Insertion of sensitive information into log files\nInformation written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information. Third-party logging utilities like Log4J and SLF4J are widely used in Java projects. When sensitive information is written to logs without properly set logging levels, it is accessible to potential attackers who can use it to gain access to file storage.\n\n\n## Recommendation\nDo not write secrets into the log files and enforce proper logging level control.\n\n\n## Example\nThe following example shows two ways of logging sensitive information. In the 'BAD' case, the credentials are simply written to a debug log. In the 'GOOD' case, the credentials are never written to debug logs.\n\n\n```java\npublic static void main(String[] args) {\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n\n        String password = \"Pass@0rd\";\n\n        // BAD: user password is written to debug log\n        logger.debug(\"User password is \"+password);\n    }\n\t\n    {\n        private static final Logger logger = LogManager.getLogger(SensitiveInfoLog.class);\n  \n        String password = \"Pass@0rd\";\n\n        // GOOD: user password is never written to debug log\n        logger.debug(\"User password changed\")\n    }\n}\n\n```\n\n## References\n* [OWASP Logging Guide](https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html)\n* Common Weakness Enumeration: [CWE-532](https://cwe.mitre.org/data/definitions/532.html).\n"
+                },
+                "id": "java/sensitive-log",
+                "name": "java/sensitive-log",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-532/SensitiveInfoLog.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-532",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Insertion of sensitive information into log files"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Untrusted input interpreted as a template can lead to remote code execution."
+                },
+                "help": {
+                  "markdown": "# Server-side template injection\nTemplate injection occurs when user input is embedded in a template's code in an unsafe manner. An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side. This permits the attacker to run arbitrary code in the server's context.\n\n\n## Recommendation\nTo fix this, ensure that untrusted input is not used as part of a template's code. If the application requirements do not allow this, use a sandboxed environment where access to unsafe attributes and methods is prohibited.\n\n\n## Example\nIn the example given below, an untrusted HTTP parameter `code` is used as a Velocity template string. This can lead to remote code execution.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"bad\")\n\tpublic void bad(HttpServletRequest request) {\n\t\tVelocity.init();\n\n\t\tString code = request.getParameter(\"code\");\n\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tStringWriter w = new StringWriter();\n\t\t// evaluate( Context context, Writer out, String logTag, String instring )\n\t\tVelocity.evaluate(context, w, \"mystring\", code);\n\t}\n}\n\n```\nIn the next example, the problem is avoided by using a fixed template string `s`. Since the template's code is not attacker-controlled in this case, this solution prevents the execution of untrusted code.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"good\")\n\tpublic void good(HttpServletRequest request) {\n\t\tVelocity.init();\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tString s = \"We are using $project $name to render this.\";\n\t\tStringWriter w = new StringWriter();\n\t\tVelocity.evaluate(context, w, \"mystring\", s);\n\t\tSystem.out.println(\" string : \" + w);\n\t}\n}\n\n```\n\n## References\n* Portswigger: [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-1336](https://cwe.mitre.org/data/definitions/1336.html).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Server-side template injection\nTemplate injection occurs when user input is embedded in a template's code in an unsafe manner. An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side. This permits the attacker to run arbitrary code in the server's context.\n\n\n## Recommendation\nTo fix this, ensure that untrusted input is not used as part of a template's code. If the application requirements do not allow this, use a sandboxed environment where access to unsafe attributes and methods is prohibited.\n\n\n## Example\nIn the example given below, an untrusted HTTP parameter `code` is used as a Velocity template string. This can lead to remote code execution.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"bad\")\n\tpublic void bad(HttpServletRequest request) {\n\t\tVelocity.init();\n\n\t\tString code = request.getParameter(\"code\");\n\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tStringWriter w = new StringWriter();\n\t\t// evaluate( Context context, Writer out, String logTag, String instring )\n\t\tVelocity.evaluate(context, w, \"mystring\", code);\n\t}\n}\n\n```\nIn the next example, the problem is avoided by using a fixed template string `s`. Since the template's code is not attacker-controlled in this case, this solution prevents the execution of untrusted code.\n\n\n```java\n@Controller\npublic class VelocitySSTI {\n\n\t@GetMapping(value = \"good\")\n\tpublic void good(HttpServletRequest request) {\n\t\tVelocity.init();\n\t\tVelocityContext context = new VelocityContext();\n\n\t\tcontext.put(\"name\", \"Velocity\");\n\t\tcontext.put(\"project\", \"Jakarta\");\n\n\t\tString s = \"We are using $project $name to render this.\";\n\t\tStringWriter w = new StringWriter();\n\t\tVelocity.evaluate(context, w, \"mystring\", s);\n\t\tSystem.out.println(\" string : \" + w);\n\t}\n}\n\n```\n\n## References\n* Portswigger: [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection).\n* Common Weakness Enumeration: [CWE-1336](https://cwe.mitre.org/data/definitions/1336.html).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/server-side-template-injection",
+                "name": "java/server-side-template-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/TemplateInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "external/cwe/cwe-1336",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Server-side template injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Opening a socket after authenticating via a different channel may allow an attacker to connect to the port first."
+                },
+                "help": {
+                  "markdown": "# Race condition in socket authentication\nA common pattern is to have a channel of communication open with a user, and then to open another channel, for example to transfer data. However, if user authentication is done over the original channel rather than the alternate channel, then an attacker may be able to connect to the alternate channel before the legitimate user does. This allows the attacker to impersonate the user by \"piggybacking\" on any previous authentication.\n\n\n## Recommendation\nWhen opening an alternate channel for an authenticated user (for example, a Java `Socket`), always authenticate the user over the new channel.\n\n\n## Example\nThis example shows two ways of opening a connection for a user. In the first example, authentication is determined based on materials that the user has already provided (for example, their username and/or password), and then a new channel is opened. However, no authentication is done over the new channel, and so an attacker could connect to it before the user connects.\n\nIn the second example, authentication is done over the socket channel itself, which verifies that the newly connected user is in fact the user that was expected.\n\n\n```java\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tif (isAuthenticated(username)) {\n\t\tSocket connection1 = listenSocket.accept();\n\t\t// BAD: no authentication over the socket connection\n\t\tconnection1.getOutputStream().write(secretData);\n\t}\n}\n\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tSocket connection2 = listenSocket.accept();\n\t// GOOD: authentication happens over the socket\n\tif (doAuthenticate(connection2, username)) {\n\t\tconnection2.getOutputStream().write(secretData);\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-421](https://cwe.mitre.org/data/definitions/421.html).\n",
+                  "text": "# Race condition in socket authentication\nA common pattern is to have a channel of communication open with a user, and then to open another channel, for example to transfer data. However, if user authentication is done over the original channel rather than the alternate channel, then an attacker may be able to connect to the alternate channel before the legitimate user does. This allows the attacker to impersonate the user by \"piggybacking\" on any previous authentication.\n\n\n## Recommendation\nWhen opening an alternate channel for an authenticated user (for example, a Java `Socket`), always authenticate the user over the new channel.\n\n\n## Example\nThis example shows two ways of opening a connection for a user. In the first example, authentication is determined based on materials that the user has already provided (for example, their username and/or password), and then a new channel is opened. However, no authentication is done over the new channel, and so an attacker could connect to it before the user connects.\n\nIn the second example, authentication is done over the socket channel itself, which verifies that the newly connected user is in fact the user that was expected.\n\n\n```java\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tif (isAuthenticated(username)) {\n\t\tSocket connection1 = listenSocket.accept();\n\t\t// BAD: no authentication over the socket connection\n\t\tconnection1.getOutputStream().write(secretData);\n\t}\n}\n\npublic void doConnect(int desiredPort, String username) {\n\tServerSocket listenSocket = new ServerSocket(desiredPort);\n\n\tSocket connection2 = listenSocket.accept();\n\t// GOOD: authentication happens over the socket\n\tif (doAuthenticate(connection2, username)) {\n\t\tconnection2.getOutputStream().write(secretData);\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-421](https://cwe.mitre.org/data/definitions/421.html).\n"
+                },
+                "id": "java/socket-auth-race-condition",
+                "name": "java/socket-auth-race-condition",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-421/SocketAuthRace.ql",
+                  "security-severity": "7.2",
+                  "tags": [
+                    "external/cwe/cwe-421",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Race condition in socket authentication"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Evaluation of a user-controlled Spring Expression Language (SpEL) expression may lead to remote code execution."
+                },
+                "help": {
+                  "markdown": "# Expression language injection (Spring)\nThe Spring Expression Language (SpEL) is a powerful expression language provided by the Spring Framework. The language offers many features including invocation of methods available in the JVM. If a SpEL expression is built using attacker-controlled data, and then evaluated in a powerful context, then it may allow the attacker to run arbitrary code.\n\nThe `SpelExpressionParser` class parses a SpEL expression string and returns an `Expression` instance that can be then evaluated by calling one of its methods. By default, an expression is evaluated in a powerful `StandardEvaluationContext` that allows the expression to access other methods available in the JVM.\n\n\n## Recommendation\nIn general, including user input in a SpEL expression should be avoided. If user input must be included in the expression, it should be then evaluated in a limited context that doesn't allow arbitrary method invocation.\n\n\n## Example\nThe following example uses untrusted data to build a SpEL expression and then runs it in the default powerful context.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    return expression.getValue();\n  }\n}\n```\nThe next example shows how an untrusted SpEL expression can be run in `SimpleEvaluationContext` that doesn't allow accessing arbitrary methods. However, it's recommended to avoid using untrusted input in SpEL expressions.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    SimpleEvaluationContext context \n        = SimpleEvaluationContext.forReadWriteDataBinding().build();\n    return expression.getValue(context);\n  }\n}\n```\n\n## References\n* Spring Framework Reference Documentation: [Spring Expression Language (SpEL)](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n",
+                  "text": "# Expression language injection (Spring)\nThe Spring Expression Language (SpEL) is a powerful expression language provided by the Spring Framework. The language offers many features including invocation of methods available in the JVM. If a SpEL expression is built using attacker-controlled data, and then evaluated in a powerful context, then it may allow the attacker to run arbitrary code.\n\nThe `SpelExpressionParser` class parses a SpEL expression string and returns an `Expression` instance that can be then evaluated by calling one of its methods. By default, an expression is evaluated in a powerful `StandardEvaluationContext` that allows the expression to access other methods available in the JVM.\n\n\n## Recommendation\nIn general, including user input in a SpEL expression should be avoided. If user input must be included in the expression, it should be then evaluated in a limited context that doesn't allow arbitrary method invocation.\n\n\n## Example\nThe following example uses untrusted data to build a SpEL expression and then runs it in the default powerful context.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    return expression.getValue();\n  }\n}\n```\nThe next example shows how an untrusted SpEL expression can be run in `SimpleEvaluationContext` that doesn't allow accessing arbitrary methods. However, it's recommended to avoid using untrusted input in SpEL expressions.\n\n\n```java\npublic Object evaluate(Socket socket) throws IOException {\n  try (BufferedReader reader = new BufferedReader(\n      new InputStreamReader(socket.getInputStream()))) {\n\n    String string = reader.readLine();\n    ExpressionParser parser = new SpelExpressionParser();\n    Expression expression = parser.parseExpression(string);\n    SimpleEvaluationContext context \n        = SimpleEvaluationContext.forReadWriteDataBinding().build();\n    return expression.getValue(context);\n  }\n}\n```\n\n## References\n* Spring Framework Reference Documentation: [Spring Expression Language (SpEL)](https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html).\n* OWASP: [Expression Language Injection](https://owasp.org/www-community/vulnerabilities/Expression_Language_Injection).\n* Common Weakness Enumeration: [CWE-94](https://cwe.mitre.org/data/definitions/94.html).\n"
+                },
+                "id": "java/spel-expression-injection",
+                "name": "java/spel-expression-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-094/SpelInjection.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-094",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Expression language injection (Spring)"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Disabling CSRF protection makes the application vulnerable to a Cross-Site Request Forgery (CSRF) attack."
+                },
+                "help": {
+                  "markdown": "# Disabled Spring CSRF protection\nWhen you set up a web server to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it is vulnerable to attack. An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.\n\n\n## Recommendation\nWhen you use Spring, Cross-Site Request Forgery (CSRF) protection is enabled by default. Spring's recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n\n\n## Example\nThe following example shows the Spring Java configuration with CSRF protection disabled. This type of configuration should only be used if you are creating a service that is used only by non-browser clients.\n\n\n```java\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n@EnableWebSecurity\n@Configuration\npublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {\n  @Override\n  protected void configure(HttpSecurity http) throws Exception {\n    http\n      .csrf(csrf ->\n        // BAD - CSRF protection shouldn't be disabled\n        csrf.disable() \n      );\n  }\n}\n\n```\n\n## References\n* OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n* Spring Security Reference: [ Cross Site Request Forgery (CSRF) ](https://docs.spring.io/spring-security/reference/servlet/exploits/csrf.html).\n* Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n",
+                  "text": "# Disabled Spring CSRF protection\nWhen you set up a web server to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it is vulnerable to attack. An attacker can trick a client into making an unintended request to the web server that will be treated as an authentic request. This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.\n\n\n## Recommendation\nWhen you use Spring, Cross-Site Request Forgery (CSRF) protection is enabled by default. Spring's recommendation is to use CSRF protection for any request that could be processed by a browser client by normal users.\n\n\n## Example\nThe following example shows the Spring Java configuration with CSRF protection disabled. This type of configuration should only be used if you are creating a service that is used only by non-browser clients.\n\n\n```java\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;\n\n@EnableWebSecurity\n@Configuration\npublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {\n  @Override\n  protected void configure(HttpSecurity http) throws Exception {\n    http\n      .csrf(csrf ->\n        // BAD - CSRF protection shouldn't be disabled\n        csrf.disable() \n      );\n  }\n}\n\n```\n\n## References\n* OWASP: [Cross-Site Request Forgery (CSRF)](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)).\n* Spring Security Reference: [ Cross Site Request Forgery (CSRF) ](https://docs.spring.io/spring-security/reference/servlet/exploits/csrf.html).\n* Common Weakness Enumeration: [CWE-352](https://cwe.mitre.org/data/definitions/352.html).\n"
+                },
+                "id": "java/spring-disabled-csrf-protection",
+                "name": "java/spring-disabled-csrf-protection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-352/SpringCSRFProtection.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-352",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Disabled Spring CSRF protection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building a SQL or Java Persistence query from user-controlled sources is vulnerable to insertion of malicious code by the user."
+                },
+                "help": {
+                  "markdown": "# Query built from user-controlled sources\nIf a database query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious database queries. This applies to various database query languages, including SQL and the Java Persistence Query Language.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating an environment variable with some string literals. The environment variable can include special characters, so this code allows for SQL injection attacks.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the environment variable are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## Example\nThe following code shows several different ways to run a Java Persistence query.\n\nThe first example involves building a query, `query1`, by concatenating an environment variable with some string literals. Just like the SQL example, the environment variable can include special characters, so this code allows for Java Persistence query injection attacks.\n\nThe remaining examples demonstrate different methods for safely building a Java Persistence query with user-supplied values:\n\n1. `query2` uses a single string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `query3` uses a single string literal that includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\n1. `namedQuery1` is defined using the `@NamedQuery` annotation, whose `query` attribute is a string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `namedQuery2` is defined using the `@NamedQuery` annotation, whose `query` attribute includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\nThe parameter is then given a value by calling `setParameter`. These versions are immune to injection attacks, because any special characters in the environment variable or user-supplied value are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have Java Persistence Query Language special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT p FROM Product p WHERE p.category LIKE '\"\n        + category + \"' ORDER BY p.price\";\n    Query q = entityManager.createQuery(query1);\n}\n\n{\n    // GOOD: use a named parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\"\n    Query q = entityManager.createQuery(query2);\n    q.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a positional parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query3 = \"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\"\n    Query q = entityManager.createQuery(query3);\n    q.setParameter(1, category);\n}\n\n{\n    // GOOD: use a named query with a named parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery1 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery1.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a named query with a positional parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery2 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery2.setParameter(1, category);\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* The Java EE Tutorial: [The Java Persistence Query Language](https://docs.oracle.com/javaee/7/tutorial/persistence-querylanguage.htm).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n",
+                  "text": "# Query built from user-controlled sources\nIf a database query is built using string concatenation, and the components of the concatenation include user input, a user is likely to be able to run malicious database queries. This applies to various database query languages, including SQL and the Java Persistence Query Language.\n\n\n## Recommendation\nUsually, it is better to use a SQL prepared statement than to build a complete SQL query with string concatenation. A prepared statement can include a wildcard, written as a question mark (?), for each part of the SQL query that is expected to be filled in by a different value each time it is run. When the query is later executed, a value must be supplied for each wildcard in the query.\n\nIn the Java Persistence Query Language, it is better to use queries with parameters than to build a complete query with string concatenation. A Java Persistence query can include a parameter placeholder for each part of the query that is expected to be filled in by a different value when run. A parameter placeholder may be indicated by a colon (:) followed by a parameter name, or by a question mark (?) followed by an integer position. When the query is later executed, a value must be supplied for each parameter in the query, using the `setParameter` method. Specifying the query using the `@NamedQuery` annotation introduces an additional level of safety: the query must be a constant string literal, preventing construction by string concatenation, and the only way to fill in values for parts of the query is by setting positional parameters.\n\nIt is good practice to use prepared statements (in SQL) or query parameters (in the Java Persistence Query Language) for supplying parameter values to a query, whether or not any of the parameters are directly traceable to user input. Doing so avoids any need to worry about quoting and escaping.\n\n\n## Example\nIn the following example, the code runs a simple SQL query in two different ways.\n\nThe first way involves building a query, `query1`, by concatenating an environment variable with some string literals. The environment variable can include special characters, so this code allows for SQL injection attacks.\n\nThe second way, which shows good practice, involves building a query, `query2`, with a single string literal that includes a wildcard (`?`). The wildcard is then given a value by calling `setString`. This version is immune to injection attacks, because any special characters in the environment variable are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have SQL special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='\"\n        + category + \"' ORDER BY PRICE\";\n    ResultSet results = statement.executeQuery(query1);\n}\n\n{\n    // GOOD: use a prepared query\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE\";\n    PreparedStatement statement = connection.prepareStatement(query2);\n    statement.setString(1, category);\n    ResultSet results = statement.executeQuery();\n}\n```\n\n## Example\nThe following code shows several different ways to run a Java Persistence query.\n\nThe first example involves building a query, `query1`, by concatenating an environment variable with some string literals. Just like the SQL example, the environment variable can include special characters, so this code allows for Java Persistence query injection attacks.\n\nThe remaining examples demonstrate different methods for safely building a Java Persistence query with user-supplied values:\n\n1. `query2` uses a single string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `query3` uses a single string literal that includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\n1. `namedQuery1` is defined using the `@NamedQuery` annotation, whose `query` attribute is a string literal that includes a placeholder for a parameter, indicated by a colon (`:`) and parameter name (`category`).\n1. `namedQuery2` is defined using the `@NamedQuery` annotation, whose `query` attribute includes a placeholder for a parameter, indicated by a question mark (`?`) and position number (`1`).\nThe parameter is then given a value by calling `setParameter`. These versions are immune to injection attacks, because any special characters in the environment variable or user-supplied value are not given any special treatment.\n\n\n```java\n{\n    // BAD: the category might have Java Persistence Query Language special characters in it\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Statement statement = connection.createStatement();\n    String query1 = \"SELECT p FROM Product p WHERE p.category LIKE '\"\n        + category + \"' ORDER BY p.price\";\n    Query q = entityManager.createQuery(query1);\n}\n\n{\n    // GOOD: use a named parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query2 = \"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\"\n    Query q = entityManager.createQuery(query2);\n    q.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a positional parameter and set its value\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    String query3 = \"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\"\n    Query q = entityManager.createQuery(query3);\n    q.setParameter(1, category);\n}\n\n{\n    // GOOD: use a named query with a named parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE :category ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery1 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery1.setParameter(\"category\", category);\n}\n\n{\n    // GOOD: use a named query with a positional parameter and set its value\n    @NamedQuery(\n            name=\"lookupByCategory\",\n            query=\"SELECT p FROM Product p WHERE p.category LIKE ?1 ORDER BY p.price\")\n    private static class NQ {}\n    ...\n    String category = System.getenv(\"ITEM_CATEGORY\");\n    Query namedQuery2 = entityManager.createNamedQuery(\"lookupByCategory\");\n    namedQuery2.setParameter(1, category);\n}\n```\n\n## References\n* OWASP: [SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html).\n* SEI CERT Oracle Coding Standard for Java: [IDS00-J. Prevent SQL injection](https://wiki.sei.cmu.edu/confluence/display/java/IDS00-J.+Prevent+SQL+injection).\n* The Java Tutorials: [Using Prepared Statements](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).\n* The Java EE Tutorial: [The Java Persistence Query Language](https://docs.oracle.com/javaee/7/tutorial/persistence-querylanguage.htm).\n* Common Weakness Enumeration: [CWE-89](https://cwe.mitre.org/data/definitions/89.html).\n* Common Weakness Enumeration: [CWE-564](https://cwe.mitre.org/data/definitions/564.html).\n"
+                },
+                "id": "java/sql-injection",
+                "name": "java/sql-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-089/SqlTainted.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-089",
+                    "external/cwe/cwe-564",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Query built from user-controlled sources"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Making web requests based on unvalidated user-input may cause the server to communicate with malicious servers."
+                },
+                "help": {
+                  "markdown": "# Server-side request forgery\nDirectly incorporating user input into an HTTP request without validating the input can facilitate server-side request forgery (SSRF) attacks. In these attacks, the server may be tricked into making a request and interacting with an attacker-controlled server.\n\n\n## Recommendation\nTo guard against SSRF attacks, you should avoid putting user-provided input directly into a request URL. Instead, maintain a list of authorized URLs on the server; then choose from that list based on the input provided. Alternatively, ensure requests constructed from user input are limited to a particular host or more restrictive URL prefix.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly to form a new request without validating the input, which facilitates SSRF attacks. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\nimport java.net.http.HttpClient;\n\npublic class SSRF extends HttpServlet {\n\tprivate static final String VALID_URI = \"http://lgtm.com\";\n\tprivate HttpClient client = HttpClient.newHttpClient();\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\tthrows ServletException, IOException {\n\t\tURI uri = new URI(request.getParameter(\"uri\"));\n\t\t// BAD: a request parameter is incorporated without validation into a Http request\n\t\tHttpRequest r = HttpRequest.newBuilder(uri).build();\n\t\tclient.send(r, null);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_URI.equals(request.getParameter(\"uri\"))) {\n\t\t\tHttpRequest r2 = HttpRequest.newBuilder(uri).build();\n\t\t\tclient.send(r2, null);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* [OWASP SSRF](https://owasp.org/www-community/attacks/Server_Side_Request_Forgery)\n* Common Weakness Enumeration: [CWE-918](https://cwe.mitre.org/data/definitions/918.html).\n",
+                  "text": "# Server-side request forgery\nDirectly incorporating user input into an HTTP request without validating the input can facilitate server-side request forgery (SSRF) attacks. In these attacks, the server may be tricked into making a request and interacting with an attacker-controlled server.\n\n\n## Recommendation\nTo guard against SSRF attacks, you should avoid putting user-provided input directly into a request URL. Instead, maintain a list of authorized URLs on the server; then choose from that list based on the input provided. Alternatively, ensure requests constructed from user input are limited to a particular host or more restrictive URL prefix.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly to form a new request without validating the input, which facilitates SSRF attacks. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\nimport java.net.http.HttpClient;\n\npublic class SSRF extends HttpServlet {\n\tprivate static final String VALID_URI = \"http://lgtm.com\";\n\tprivate HttpClient client = HttpClient.newHttpClient();\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\tthrows ServletException, IOException {\n\t\tURI uri = new URI(request.getParameter(\"uri\"));\n\t\t// BAD: a request parameter is incorporated without validation into a Http request\n\t\tHttpRequest r = HttpRequest.newBuilder(uri).build();\n\t\tclient.send(r, null);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_URI.equals(request.getParameter(\"uri\"))) {\n\t\t\tHttpRequest r2 = HttpRequest.newBuilder(uri).build();\n\t\t\tclient.send(r2, null);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* [OWASP SSRF](https://owasp.org/www-community/attacks/Server_Side_Request_Forgery)\n* Common Weakness Enumeration: [CWE-918](https://cwe.mitre.org/data/definitions/918.html).\n"
+                },
+                "id": "java/ssrf",
+                "name": "java/ssrf",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-918/RequestForgery.ql",
+                  "security-severity": "9.1",
+                  "tags": [
+                    "external/cwe/cwe-918",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Server-side request forgery"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Information from a stack trace propagates to an external user. Stack traces can unintentionally reveal implementation details that are useful to an attacker for developing a subsequent exploit."
+                },
+                "help": {
+                  "markdown": "# Information exposure through a stack trace\nSoftware developers often add stack traces to error messages, as a debugging aid. Whenever that error message occurs for an end user, the developer can use the stack trace to help identify how to fix the problem. In particular, stack traces can tell the developer more about the sequence of events that led to a failure, as opposed to merely the final state of the software when the error occurred.\n\nUnfortunately, the same information can be useful to an attacker. The sequence of class names in a stack trace can reveal the structure of the application as well as any internal components it relies on.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the stack trace entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `sendError()` method. As such, the user is able to see a detailed stack trace, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a stack trace back to the response\n\t\tex.printStackTrace(response.getWriter());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the stack trace, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n* Common Weakness Enumeration: [CWE-497](https://cwe.mitre.org/data/definitions/497.html).\n",
+                  "text": "# Information exposure through a stack trace\nSoftware developers often add stack traces to error messages, as a debugging aid. Whenever that error message occurs for an end user, the developer can use the stack trace to help identify how to fix the problem. In particular, stack traces can tell the developer more about the sequence of events that led to a failure, as opposed to merely the final state of the software when the error occurred.\n\nUnfortunately, the same information can be useful to an attacker. The sequence of class names in a stack trace can reveal the structure of the application as well as any internal components it relies on.\n\n\n## Recommendation\nSend the user a more generic error message that reveals less information. Either suppress the stack trace entirely, or log it only on the server.\n\n\n## Example\nIn the following example, an exception is handled in two different ways. In the first version, labeled BAD, the exception is sent back to the remote user using the `sendError()` method. As such, the user is able to see a detailed stack trace, which may contain sensitive information. In the second version, the error message is logged only on the server. That way, the developers can still access and use the error log, but remote users will not see the information.\n\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) {\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// BAD: printing a stack trace back to the response\n\t\tex.printStackTrace(response.getWriter());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tdoSomeWork();\n\t} catch (NullPointerException ex) {\n\t\t// GOOD: log the stack trace, and send back a non-revealing response\n\t\tlog(\"Exception occurred\", ex);\n\t\tresponse.sendError(\n\t\t\tHttpServletResponse.SC_INTERNAL_SERVER_ERROR,\n\t\t\t\"Exception occurred\");\n\t\treturn;\n\t}\n}\n\n```\n\n## References\n* OWASP: [Improper Error Handling](https://owasp.org/www-community/Improper_Error_Handling).\n* CERT Java Coding Standard: [ERR01-J. Do not allow exceptions to expose sensitive information](https://www.securecoding.cert.org/confluence/display/java/ERR01-J.+Do+not+allow+exceptions+to+expose+sensitive+information).\n* Common Weakness Enumeration: [CWE-209](https://cwe.mitre.org/data/definitions/209.html).\n* Common Weakness Enumeration: [CWE-497](https://cwe.mitre.org/data/definitions/497.html).\n"
+                },
+                "id": "java/stack-trace-exposure",
+                "name": "java/stack-trace-exposure",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-209/StackTraceExposure.ql",
+                  "security-severity": "5.4",
+                  "tags": [
+                    "external/cwe/cwe-209",
+                    "external/cwe/cwe-497",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Information exposure through a stack trace"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An initialization vector (IV) used for ciphers of certain modes (such as CBC or GCM) should be unique and unpredictable, to maximize encryption and prevent dictionary attacks."
+                },
+                "help": {
+                  "markdown": "# Using a static initialization vector for encryption\nWhen a cipher is used in certain modes such as CBC or GCM, it requires an initialization vector (IV). Under the same secret key, IVs should be unique and ideally unpredictable. If the same IV is used with the same secret key, then the same plaintext results in the same ciphertext. This can let an attacker learn if the same data pieces are transferred or stored, or help the attacker run a dictionary attack.\n\n\n## Recommendation\nUse a random IV generated by `SecureRandom`.\n\n\n## Example\nThe following example initializes a cipher with a static IV, which is unsafe:\n\n\n```java\nbyte[] iv = new byte[16]; // all zeroes\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\nThe next example initializes a cipher with a random IV:\n\n\n```java\nbyte[] iv = new byte[16];\nSecureRandom random = SecureRandom.getInstanceStrong();\nrandom.nextBytes(iv);\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\n\n## References\n* Wikipedia: [Initialization vector](https://en.wikipedia.org/wiki/Initialization_vector).\n* National Institute of Standards and Technology: [Recommendation for Block Cipher Modes of Operation](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf).\n* National Institute of Standards and Technology: [FIPS 140-2: Security Requirements for Cryptographic Modules](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf).\n* Common Weakness Enumeration: [CWE-329](https://cwe.mitre.org/data/definitions/329.html).\n* Common Weakness Enumeration: [CWE-1204](https://cwe.mitre.org/data/definitions/1204.html).\n",
+                  "text": "# Using a static initialization vector for encryption\nWhen a cipher is used in certain modes such as CBC or GCM, it requires an initialization vector (IV). Under the same secret key, IVs should be unique and ideally unpredictable. If the same IV is used with the same secret key, then the same plaintext results in the same ciphertext. This can let an attacker learn if the same data pieces are transferred or stored, or help the attacker run a dictionary attack.\n\n\n## Recommendation\nUse a random IV generated by `SecureRandom`.\n\n\n## Example\nThe following example initializes a cipher with a static IV, which is unsafe:\n\n\n```java\nbyte[] iv = new byte[16]; // all zeroes\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\nThe next example initializes a cipher with a random IV:\n\n\n```java\nbyte[] iv = new byte[16];\nSecureRandom random = SecureRandom.getInstanceStrong();\nrandom.nextBytes(iv);\nGCMParameterSpec params = new GCMParameterSpec(128, iv);\nCipher cipher = Cipher.getInstance(\"AES/GCM/PKCS5PADDING\");\ncipher.init(Cipher.ENCRYPT_MODE, key, params);\n```\n\n## References\n* Wikipedia: [Initialization vector](https://en.wikipedia.org/wiki/Initialization_vector).\n* National Institute of Standards and Technology: [Recommendation for Block Cipher Modes of Operation](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf).\n* National Institute of Standards and Technology: [FIPS 140-2: Security Requirements for Cryptographic Modules](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf).\n* Common Weakness Enumeration: [CWE-329](https://cwe.mitre.org/data/definitions/329.html).\n* Common Weakness Enumeration: [CWE-1204](https://cwe.mitre.org/data/definitions/1204.html).\n"
+                },
+                "id": "java/static-initialization-vector",
+                "name": "java/static-initialization-vector",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-1204/StaticInitializationVector.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-1204",
+                    "external/cwe/cwe-329",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Using a static initialization vector for encryption"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "The total number of lines of code across all Java and Kotlin files. This is a useful metric of the size of a database. For all source files that were seen during the build, this query counts the lines of code, excluding whitespace or comments."
+                },
+                "id": "java/summary/lines-of-code",
+                "name": "java/summary/lines-of-code",
+                "properties": {
+                  "tags": [
+                    "debug",
+                    "lines-of-code",
+                    "summary"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Total lines of Java/Kotlin code in the database"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "The total number of lines of code across all Java files. This is a useful metric of the size of a database. For all Java files that were seen during the build, this query counts the lines of code, excluding whitespace or comments."
+                },
+                "id": "java/summary/lines-of-code-java",
+                "name": "java/summary/lines-of-code-java",
+                "properties": {
+                  "tags": [
+                    "debug",
+                    "summary"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Total lines of Java code in the database"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "The total number of lines of code across all Kotlin files. This is a useful metric of the size of a database. For all Kotlin files that were seen during the build, this query counts the lines of code, excluding whitespace or comments."
+                },
+                "id": "java/summary/lines-of-code-kotlin",
+                "name": "java/summary/lines-of-code-kotlin",
+                "properties": {
+                  "tags": [
+                    "debug",
+                    "summary"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Total lines of Kotlin code in the database"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Arithmetic operations on user-controlled data that is not validated can cause overflows."
+                },
+                "help": {
+                  "markdown": "# User-controlled data in arithmetic expression\nPerforming calculations on user-controlled data can result in integer overflows unless the input is validated.\n\nIf the user is free to enter very large numbers, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on user-controlled data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a value is read from standard input into an `int`. Because the value is a user-controlled value, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Integer.parseInt(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// BAD: may overflow if input data is very large, for example\n\t\t\t// 'Integer.MAX_VALUE'\n\t\t\tint scaled = data * 10;\n\n\t\t\t//...\n\t\t\t\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE / 10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse\n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n",
+                  "text": "# User-controlled data in arithmetic expression\nPerforming calculations on user-controlled data can result in integer overflows unless the input is validated.\n\nIf the user is free to enter very large numbers, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on user-controlled data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a value is read from standard input into an `int`. Because the value is a user-controlled value, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Integer.parseInt(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// BAD: may overflow if input data is very large, for example\n\t\t\t// 'Integer.MAX_VALUE'\n\t\t\tint scaled = data * 10;\n\n\t\t\t//...\n\t\t\t\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE / 10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse\n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n"
+                },
+                "id": "java/tainted-arithmetic",
+                "name": "java/tainted-arithmetic",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-190/ArithmeticTainted.ql",
+                  "security-severity": "8.6",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-191",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled data in arithmetic expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using external input in format strings can lead to exceptions or information leaks."
+                },
+                "help": {
+                  "markdown": "# Use of externally-controlled format string\nThe `String.format` method and related methods, like `PrintStream.printf` and `Formatter.format`, all accept a format string that is used to format the trailing arguments to the format call by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain extra format specifiers that cause an exception to be thrown or information to be leaked.\n\nThe Java standard library implementation for the format methods throws an exception if either the format specifier does not match the type of the argument, or if there are too few or too many arguments. If unsanitized input is used in the format string, it may contain invalid extra format specifiers which cause an exception to be thrown.\n\nPositional format specifiers may be used to access an argument to the format call by position. Unsanitized input in the format string may use a positional format specifier to access information that was not intended to be visible. For example, when formatting a Calendar instance we may intend to print only the year, but a user-specified format string may include a specifier to access the month and day.\n\n\n## Recommendation\nIf the argument passed as a format string is meant to be a plain string rather than a format string, then pass `%s` as the format string, and pass the original argument as the sole trailing argument.\n\n\n## Example\nThe following program is meant to check a card security code for a stored credit card:\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    Calendar expirationDate = new GregorianCalendar(2017, GregorianCalendar.SEPTEMBER, 1);\n    // User provided value\n    String cardSecurityCode = request.getParameter(\"cardSecurityCode\");\n    \n    if (notValid(cardSecurityCode)) {\n      \n      /*\n       * BAD: user provided value is included in the format string.\n       * A malicious user could provide an extra format specifier, which causes an\n       * exception to be thrown. Or they could provide a %1$tm or %1$te format specifier to\n       * access the month or day of the expiration date.\n       */\n      System.out.format(cardSecurityCode +\n                          \" is not the right value. Hint: the card expires in %1$ty.\",\n                        expirationDate);\n      \n      // GOOD: %s is used to include the user-provided cardSecurityCode in the output\n      System.out.format(\"%s is not the right value. Hint: the card expires in %2$ty.\",\n                        cardSecurityCode,\n                        expirationDate);\n    }\n\n  }\n}\n```\nHowever, in the first format call it uses the cardSecurityCode provided by the user in a format string. If the user includes a format specifier in the cardSecurityCode field, they may be able to cause an exception to be thrown, or to be able to access extra information about the stored card expiration date.\n\nThe second format call shows the correct approach. The user-provided value is passed as an argument to the format call. This prevents any format specifiers in the user provided value from being evaluated.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [IDS06-J. Exclude unsanitized user input from format strings](https://wiki.sei.cmu.edu/confluence/display/java/IDS06-J.+Exclude+unsanitized+user+input+from+format+strings).\n* The Java Tutorials: [Formatting Numeric Print Output](https://docs.oracle.com/javase/tutorial/java/data/numberformat.html).\n* Java API Specification: [Formatter](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Formatter.html).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n",
+                  "text": "# Use of externally-controlled format string\nThe `String.format` method and related methods, like `PrintStream.printf` and `Formatter.format`, all accept a format string that is used to format the trailing arguments to the format call by providing inline format specifiers. If the format string contains unsanitized input from an untrusted source, then that string may contain extra format specifiers that cause an exception to be thrown or information to be leaked.\n\nThe Java standard library implementation for the format methods throws an exception if either the format specifier does not match the type of the argument, or if there are too few or too many arguments. If unsanitized input is used in the format string, it may contain invalid extra format specifiers which cause an exception to be thrown.\n\nPositional format specifiers may be used to access an argument to the format call by position. Unsanitized input in the format string may use a positional format specifier to access information that was not intended to be visible. For example, when formatting a Calendar instance we may intend to print only the year, but a user-specified format string may include a specifier to access the month and day.\n\n\n## Recommendation\nIf the argument passed as a format string is meant to be a plain string rather than a format string, then pass `%s` as the format string, and pass the original argument as the sole trailing argument.\n\n\n## Example\nThe following program is meant to check a card security code for a stored credit card:\n\n\n```java\npublic class ResponseSplitting extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response)\n  throws ServletException, IOException {\n    Calendar expirationDate = new GregorianCalendar(2017, GregorianCalendar.SEPTEMBER, 1);\n    // User provided value\n    String cardSecurityCode = request.getParameter(\"cardSecurityCode\");\n    \n    if (notValid(cardSecurityCode)) {\n      \n      /*\n       * BAD: user provided value is included in the format string.\n       * A malicious user could provide an extra format specifier, which causes an\n       * exception to be thrown. Or they could provide a %1$tm or %1$te format specifier to\n       * access the month or day of the expiration date.\n       */\n      System.out.format(cardSecurityCode +\n                          \" is not the right value. Hint: the card expires in %1$ty.\",\n                        expirationDate);\n      \n      // GOOD: %s is used to include the user-provided cardSecurityCode in the output\n      System.out.format(\"%s is not the right value. Hint: the card expires in %2$ty.\",\n                        cardSecurityCode,\n                        expirationDate);\n    }\n\n  }\n}\n```\nHowever, in the first format call it uses the cardSecurityCode provided by the user in a format string. If the user includes a format specifier in the cardSecurityCode field, they may be able to cause an exception to be thrown, or to be able to access extra information about the stored card expiration date.\n\nThe second format call shows the correct approach. The user-provided value is passed as an argument to the format call. This prevents any format specifiers in the user provided value from being evaluated.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [IDS06-J. Exclude unsanitized user input from format strings](https://wiki.sei.cmu.edu/confluence/display/java/IDS06-J.+Exclude+unsanitized+user+input+from+format+strings).\n* The Java Tutorials: [Formatting Numeric Print Output](https://docs.oracle.com/javase/tutorial/java/data/numberformat.html).\n* Java API Specification: [Formatter](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Formatter.html).\n* Common Weakness Enumeration: [CWE-134](https://cwe.mitre.org/data/definitions/134.html).\n"
+                },
+                "id": "java/tainted-format-string",
+                "name": "java/tainted-format-string",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql",
+                  "security-severity": "9.3",
+                  "tags": [
+                    "external/cwe/cwe-134",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of externally-controlled format string"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Casting user-controlled numeric data to a narrower type without validation can cause unexpected truncation."
+                },
+                "help": {
+                  "markdown": "# User-controlled data in numeric cast\nCasting a user-controlled numeric value to a narrower type can result in truncated values unless the input is validated.\n\nNarrowing conversions may cause potentially unintended results. For example, casting the positive integer value `128` to type `byte` yields the negative value `-128`.\n\n\n## Recommendation\nGuard against unexpected truncation of user-controlled arithmetic data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the cast expression, so that the cast is performed only if the input is known to be within the range of the resulting type.\n* Avoid casting to a narrower type, and instead continue to use a wider type.\n\n## Example\nIn this example, a value is read from standard input into a `long`. Because the value is a user-controlled value, it could be extremely large. Casting this value to a narrower type could therefore cause unexpected truncation. The `scaled2` example uses a guard to avoid this problem and checks the range of the input before performing the cast. If the value is too large to cast to type `int` it is rejected as invalid.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) throws IOException {\n\t\t{\n\t\t\tlong data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Long.parseLong(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// AVOID: potential truncation if input data is very large,\n\t\t\t// for example 'Long.MAX_VALUE'\n\t\t\tint scaled = (int)data;\n\n\t\t\t//...\n\n\t\t\t// GOOD: use a guard to ensure no truncation occurs\n\t\t\tint scaled2;\n\t\t\tif (data > Integer.MIN_VALUE && data < Integer.MAX_VALUE)\n\t\t\t\tscaled2 = (int)data;\n\t\t\telse\n\t\t\t\tthrow new IllegalArgumentException(\"Invalid input\");\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data](https://wiki.sei.cmu.edu/confluence/display/java/NUM12-J.+Ensure+conversions+of+numeric+types+to+narrower+types+do+not+result+in+lost+or+misinterpreted+data).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n",
+                  "text": "# User-controlled data in numeric cast\nCasting a user-controlled numeric value to a narrower type can result in truncated values unless the input is validated.\n\nNarrowing conversions may cause potentially unintended results. For example, casting the positive integer value `128` to type `byte` yields the negative value `-128`.\n\n\n## Recommendation\nGuard against unexpected truncation of user-controlled arithmetic data by doing one of the following:\n\n* Validate the user input.\n* Define a guard on the cast expression, so that the cast is performed only if the input is known to be within the range of the resulting type.\n* Avoid casting to a narrower type, and instead continue to use a wider type.\n\n## Example\nIn this example, a value is read from standard input into a `long`. Because the value is a user-controlled value, it could be extremely large. Casting this value to a narrower type could therefore cause unexpected truncation. The `scaled2` example uses a guard to avoid this problem and checks the range of the input before performing the cast. If the value is too large to cast to type `int` it is rejected as invalid.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) throws IOException {\n\t\t{\n\t\t\tlong data;\n\n\t\t\tBufferedReader readerBuffered = new BufferedReader(\n\t\t\t\t\tnew InputStreamReader(System.in, \"UTF-8\"));\n\t\t\tString stringNumber = readerBuffered.readLine();\n\t\t\tif (stringNumber != null) {\n\t\t\t\tdata = Long.parseLong(stringNumber.trim());\n\t\t\t} else {\n\t\t\t\tdata = 0;\n\t\t\t}\n\n\t\t\t// AVOID: potential truncation if input data is very large,\n\t\t\t// for example 'Long.MAX_VALUE'\n\t\t\tint scaled = (int)data;\n\n\t\t\t//...\n\n\t\t\t// GOOD: use a guard to ensure no truncation occurs\n\t\t\tint scaled2;\n\t\t\tif (data > Integer.MIN_VALUE && data < Integer.MAX_VALUE)\n\t\t\t\tscaled2 = (int)data;\n\t\t\telse\n\t\t\t\tthrow new IllegalArgumentException(\"Invalid input\");\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM12-J. Ensure conversions of numeric types to narrower types do not result in lost or misinterpreted data](https://wiki.sei.cmu.edu/confluence/display/java/NUM12-J.+Ensure+conversions+of+numeric+types+to+narrower+types+do+not+result+in+lost+or+misinterpreted+data).\n* Common Weakness Enumeration: [CWE-197](https://cwe.mitre.org/data/definitions/197.html).\n* Common Weakness Enumeration: [CWE-681](https://cwe.mitre.org/data/definitions/681.html).\n"
+                },
+                "id": "java/tainted-numeric-cast",
+                "name": "java/tainted-numeric-cast",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-681/NumericCastTainted.ql",
+                  "security-severity": "9",
+                  "tags": [
+                    "external/cwe/cwe-197",
+                    "external/cwe/cwe-681",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled data in numeric cast"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Using user-controlled data in a permissions check may result in inappropriate permissions being granted."
+                },
+                "help": {
+                  "markdown": "# User-controlled data used in permissions check\nUsing user-controlled data in a permissions check may allow a user to gain unauthorized access to protected functionality or data.\n\n\n## Recommendation\nWhen checking whether a user is authorized for a particular activity, do not use data that is controlled by that user in the permissions check. If necessary, always validate the input, ideally against a fixed list of expected values.\n\nSimilarly, do not decide which permission to check for based on user data. In particular, avoid using computation to decide which permissions to check for. Use fixed permissions for particular actions, rather than generating the permission to check for.\n\n\n## Example\nThis example, using the Apache Shiro security framework, shows two ways to specify the permissions to check. The first way uses a string, `whatDoTheyWantToDo`, to specify the permissions to check. However, this string is built from user input. This can allow an attacker to force a check against a permission that they know they have, rather than the permission that should be checked. For example, while trying to access the account details of another user, the attacker could force the system to check whether they had permissions to access their *own* account details, which is incorrect, and would allow them to perform the action. The second, more secure way uses a fixed check that does not depend on data that is controlled by the user.\n\n\n```java\npublic static void main(String[] args) {\n\tString whatDoTheyWantToDo = args[0];\n\tSubject subject = SecurityUtils.getSubject();\n\n\t// BAD: permissions decision made using tainted data\n\tif(subject.isPermitted(\"domain:sublevel:\" + whatDoTheyWantToDo))\n\t\tdoIt();\n\n\t// GOOD: use fixed checks\n\tif(subject.isPermitted(\"domain:sublevel:whatTheMethodDoes\"))\n\t\tdoIt();\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n",
+                  "text": "# User-controlled data used in permissions check\nUsing user-controlled data in a permissions check may allow a user to gain unauthorized access to protected functionality or data.\n\n\n## Recommendation\nWhen checking whether a user is authorized for a particular activity, do not use data that is controlled by that user in the permissions check. If necessary, always validate the input, ideally against a fixed list of expected values.\n\nSimilarly, do not decide which permission to check for based on user data. In particular, avoid using computation to decide which permissions to check for. Use fixed permissions for particular actions, rather than generating the permission to check for.\n\n\n## Example\nThis example, using the Apache Shiro security framework, shows two ways to specify the permissions to check. The first way uses a string, `whatDoTheyWantToDo`, to specify the permissions to check. However, this string is built from user input. This can allow an attacker to force a check against a permission that they know they have, rather than the permission that should be checked. For example, while trying to access the account details of another user, the attacker could force the system to check whether they had permissions to access their *own* account details, which is incorrect, and would allow them to perform the action. The second, more secure way uses a fixed check that does not depend on data that is controlled by the user.\n\n\n```java\npublic static void main(String[] args) {\n\tString whatDoTheyWantToDo = args[0];\n\tSubject subject = SecurityUtils.getSubject();\n\n\t// BAD: permissions decision made using tainted data\n\tif(subject.isPermitted(\"domain:sublevel:\" + whatDoTheyWantToDo))\n\t\tdoIt();\n\n\t// GOOD: use fixed checks\n\tif(subject.isPermitted(\"domain:sublevel:whatTheMethodDoes\"))\n\t\tdoIt();\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n"
+                },
+                "id": "java/tainted-permissions-check",
+                "name": "java/tainted-permissions-check",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-290",
+                    "external/cwe/cwe-807",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled data used in permissions check"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of external libraries used in the code"
+                },
+                "id": "java/telemetry/external-libs",
+                "name": "java/telemetry/external-libs",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "External libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Information about the extraction for a Java database"
+                },
+                "id": "java/telemetry/extraction-information",
+                "name": "java/telemetry/extraction-information",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Java extraction information"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of supported 3rd party APIs used in the codebase. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api",
+                "name": "java/telemetry/supported-external-api",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Usage of supported APIs coming from external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs detected as sinks. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api-sinks",
+                "name": "java/telemetry/supported-external-api-sinks",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Supported sinks in external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs detected as sources. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api-sources",
+                "name": "java/telemetry/supported-external-api-sources",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Supported sources in external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs detected as flow steps. Excludes test and generated code."
+                },
+                "id": "java/telemetry/supported-external-api-taint",
+                "name": "java/telemetry/supported-external-api-taint",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Supported flow steps in external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "A list of 3rd party APIs used in the codebase. Excludes test and generated code."
+                },
+                "id": "java/telemetry/unsupported-external-api",
+                "name": "java/telemetry/unsupported-external-api",
+                "properties": {
+                  "tags": [
+                    "summary",
+                    "telemetry"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Usage of unsupported APIs coming from external libraries"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using a resource after an unsynchronized state check can lead to a race condition, if the state may be changed between the check and use."
+                },
+                "help": {
+                  "markdown": "# Time-of-check time-of-use race condition\nOften it is necessary to check the state of a resource before using it. If the resource is accessed concurrently, then the check and the use need to be performed atomically, otherwise the state of the resource may change between the check and the use. This can lead to a \"time-of-check/time-of-use\" (TOCTOU) race condition.\n\nIn Java, classes may present state inspection methods and operation methods which are synchronized. This prevents multiple threads from executing those methods simultaneously, but it does not prevent a state change in between separate method invocations.\n\n\n## Recommendation\nWhen calling a series of methods which require a consistent view of an object, make sure to synchronize on a monitor that will prevent any other access to the object during your operations.\n\nIf the class that you are using has a well-designed interface, then synchronizing on the object itself will prevent its state being changed inappropriately.\n\n\n## Example\nThe following example shows a resource which has a readiness state, and an action that is only valid if the resource is ready.\n\nIn the bad case, the caller checks the readiness state and then acts, but does not synchronize around the two calls, so the readiness state may be changed by another thread.\n\nIn the good case, the caller jointly synchronizes the check and the use on the resource, so no other thread can modify the state before the use.\n\n\n```java\nclass Resource {\n\tpublic synchronized boolean isReady() { ... }\n\n\tpublic synchronized void setReady(boolean ready) { ... }\n\t\n\tpublic synchronized void act() { \n\t\tif (!isReady())\n\t\t\tthrow new IllegalStateException();\n\t\t...\n\t}\n}\n\t\npublic synchronized void bad(Resource r) {\n\tif (r.isReady()) {\n\t\t// r might no longer be ready, another thread might\n\t\t// have called setReady(false)\n\t\tr.act();\n\t}\n}\n\npublic synchronized void good(Resource r) {\n\tsynchronized(r) {\n\t\tif (r.isReady()) {\n\t\t\tr.act();\n\t\t}\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-367](https://cwe.mitre.org/data/definitions/367.html).\n",
+                  "text": "# Time-of-check time-of-use race condition\nOften it is necessary to check the state of a resource before using it. If the resource is accessed concurrently, then the check and the use need to be performed atomically, otherwise the state of the resource may change between the check and the use. This can lead to a \"time-of-check/time-of-use\" (TOCTOU) race condition.\n\nIn Java, classes may present state inspection methods and operation methods which are synchronized. This prevents multiple threads from executing those methods simultaneously, but it does not prevent a state change in between separate method invocations.\n\n\n## Recommendation\nWhen calling a series of methods which require a consistent view of an object, make sure to synchronize on a monitor that will prevent any other access to the object during your operations.\n\nIf the class that you are using has a well-designed interface, then synchronizing on the object itself will prevent its state being changed inappropriately.\n\n\n## Example\nThe following example shows a resource which has a readiness state, and an action that is only valid if the resource is ready.\n\nIn the bad case, the caller checks the readiness state and then acts, but does not synchronize around the two calls, so the readiness state may be changed by another thread.\n\nIn the good case, the caller jointly synchronizes the check and the use on the resource, so no other thread can modify the state before the use.\n\n\n```java\nclass Resource {\n\tpublic synchronized boolean isReady() { ... }\n\n\tpublic synchronized void setReady(boolean ready) { ... }\n\t\n\tpublic synchronized void act() { \n\t\tif (!isReady())\n\t\t\tthrow new IllegalStateException();\n\t\t...\n\t}\n}\n\t\npublic synchronized void bad(Resource r) {\n\tif (r.isReady()) {\n\t\t// r might no longer be ready, another thread might\n\t\t// have called setReady(false)\n\t\tr.act();\n\t}\n}\n\npublic synchronized void good(Resource r) {\n\tsynchronized(r) {\n\t\tif (r.isReady()) {\n\t\t\tr.act();\n\t\t}\n\t}\n}\n```\n\n## References\n* Common Weakness Enumeration: [CWE-367](https://cwe.mitre.org/data/definitions/367.html).\n"
+                },
+                "id": "java/toctou-race-condition",
+                "name": "java/toctou-race-condition",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-367/TOCTOURace.ql",
+                  "security-severity": "7.7",
+                  "tags": [
+                    "external/cwe/cwe-367",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Time-of-check time-of-use race condition"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Modifying the HTTP session attributes based on data from an untrusted source may violate a trust boundary."
+                },
+                "help": {
+                  "markdown": "# Trust boundary violation\nA trust boundary violation occurs when a value is passed from a less trusted context to a more trusted context.\n\nFor example, a value that is generated by a less trusted source, such as a user, may be passed to a more trusted source, such as a system process. If the less trusted source is malicious, then the value may be crafted to exploit the more trusted source.\n\nTrust boundary violations are often caused by a failure to validate input. For example, if a web application accepts a cookie from a user, then the application should validate the cookie before using it. If the cookie is not validated, then the user may be able to craft a malicious cookie that exploits the application.\n\n\n## Recommendation\nTo maintain a trust boundary, validate data from less trusted sources before use.\n\n\n## Example\nIn the first (bad) example, the server accepts a parameter from the user, then uses it to set the username without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    // BAD: The input is written to the session without being sanitized.\n    request.getSession().setAttribute(\"username\", username);\n}\n```\nIn the second (good) example, the server validates the parameter from the user, then uses it to set the username.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    if (validator.isValidInput(\"HTTP parameter\", username, \"username\", 20, false)) {\n        // GOOD: The input is sanitized before being written to the session.\n        request.getSession().setAttribute(\"username\", username);\n    }\n}\n```\n\n## References\n* Wikipedia: [Trust boundary](http://en.wikipedia.org/wiki/Trust_boundary).\n* Common Weakness Enumeration: [CWE-501](https://cwe.mitre.org/data/definitions/501.html).\n",
+                  "text": "# Trust boundary violation\nA trust boundary violation occurs when a value is passed from a less trusted context to a more trusted context.\n\nFor example, a value that is generated by a less trusted source, such as a user, may be passed to a more trusted source, such as a system process. If the less trusted source is malicious, then the value may be crafted to exploit the more trusted source.\n\nTrust boundary violations are often caused by a failure to validate input. For example, if a web application accepts a cookie from a user, then the application should validate the cookie before using it. If the cookie is not validated, then the user may be able to craft a malicious cookie that exploits the application.\n\n\n## Recommendation\nTo maintain a trust boundary, validate data from less trusted sources before use.\n\n\n## Example\nIn the first (bad) example, the server accepts a parameter from the user, then uses it to set the username without validation.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    // BAD: The input is written to the session without being sanitized.\n    request.getSession().setAttribute(\"username\", username);\n}\n```\nIn the second (good) example, the server validates the parameter from the user, then uses it to set the username.\n\n\n```java\npublic void doGet(HttpServletRequest request, HttpServletResponse response) {\n    String username = request.getParameter(\"username\");\n\n    if (validator.isValidInput(\"HTTP parameter\", username, \"username\", 20, false)) {\n        // GOOD: The input is sanitized before being written to the session.\n        request.getSession().setAttribute(\"username\", username);\n    }\n}\n```\n\n## References\n* Wikipedia: [Trust boundary](http://en.wikipedia.org/wiki/Trust_boundary).\n* Common Weakness Enumeration: [CWE-501](https://cwe.mitre.org/data/definitions/501.html).\n"
+                },
+                "id": "java/trust-boundary-violation",
+                "name": "java/trust-boundary-violation",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-501/TrustBoundaryViolation.ql",
+                  "security-severity": "8.8",
+                  "tags": [
+                    "external/cwe/cwe-501",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Trust boundary violation"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Arithmetic operations on uncontrolled data that is not validated can cause overflows."
+                },
+                "help": {
+                  "markdown": "# Uncontrolled data in arithmetic expression\nPerforming calculations on uncontrolled data can result in integer overflows unless the input is validated.\n\nIf the data is not under your control, and can take extremely large values, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on uncontrolled data by doing one of the following:\n\n* Validate the data.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a random integer is generated. Because the value is not controlled by the programmer, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data = (new java.security.SecureRandom()).nextInt();\n\n\t\t\t// BAD: may overflow if data is large\n\t\t\tint scaled = data * 10;\n\n\t\t\t// ...\n\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE/10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse \n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n",
+                  "text": "# Uncontrolled data in arithmetic expression\nPerforming calculations on uncontrolled data can result in integer overflows unless the input is validated.\n\nIf the data is not under your control, and can take extremely large values, even arithmetic operations that would usually result in a small change in magnitude may result in overflows.\n\n\n## Recommendation\nAlways guard against overflow in arithmetic operations on uncontrolled data by doing one of the following:\n\n* Validate the data.\n* Define a guard on the arithmetic expression, so that the operation is performed only if the result can be known to be less than, or equal to, the maximum value for the type, for example `MAX_VALUE`.\n* Use a wider type, so that larger input values do not cause overflow.\n\n## Example\nIn this example, a random integer is generated. Because the value is not controlled by the programmer, it could be extremely large. Performing arithmetic operations on this value could therefore cause an overflow. To avoid this happening, the example shows how to perform a check before performing a multiplication.\n\n\n```java\nclass Test {\n\tpublic static void main(String[] args) {\n\t\t{\n\t\t\tint data = (new java.security.SecureRandom()).nextInt();\n\n\t\t\t// BAD: may overflow if data is large\n\t\t\tint scaled = data * 10;\n\n\t\t\t// ...\n\n\t\t\t// GOOD: use a guard to ensure no overflows occur\n\t\t\tint scaled2;\n\t\t\tif (data < Integer.MAX_VALUE/10)\n\t\t\t\tscaled2 = data * 10;\n\t\t\telse \n\t\t\t\tscaled2 = Integer.MAX_VALUE;\n\t\t}\n\t}\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [NUM00-J. Detect or prevent integer overflow](https://wiki.sei.cmu.edu/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow).\n* Common Weakness Enumeration: [CWE-190](https://cwe.mitre.org/data/definitions/190.html).\n* Common Weakness Enumeration: [CWE-191](https://cwe.mitre.org/data/definitions/191.html).\n"
+                },
+                "id": "java/uncontrolled-arithmetic",
+                "name": "java/uncontrolled-arithmetic",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql",
+                  "security-severity": "8.6",
+                  "tags": [
+                    "external/cwe/cwe-190",
+                    "external/cwe/cwe-191",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Uncontrolled data in arithmetic expression"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "An iteration or loop with an exit condition that cannot be reached is an indication of faulty logic and can likely lead to infinite looping."
+                },
+                "help": {
+                  "markdown": "# Loop with unreachable exit condition\nLoops can contain multiple exit conditions, either directly in the loop condition or as guards around `break` or `return` statements. If an exit condition cannot be satisfied, then the code is misleading at best, and the loop might not terminate.\n\n\n## Recommendation\nWhen writing a loop that is intended to terminate, make sure that all the necessary exit conditions can be satisfied and that loop termination is clear.\n\n\n## Example\nThe following example shows a potentially infinite loop, since the inner loop condition is constantly true. Of course, the loop may or may not be infinite depending on the behavior of `shouldBreak`, but if this was intended as the only exit condition the loop should be rewritten to make this clear.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; i<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\nTo fix the loop the condition is corrected to check the right variable.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; j<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\n\n## References\n* Java Language Specification: [Blocks and Statements](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html).\n* Common Weakness Enumeration: [CWE-835](https://cwe.mitre.org/data/definitions/835.html).\n",
+                  "text": "# Loop with unreachable exit condition\nLoops can contain multiple exit conditions, either directly in the loop condition or as guards around `break` or `return` statements. If an exit condition cannot be satisfied, then the code is misleading at best, and the loop might not terminate.\n\n\n## Recommendation\nWhen writing a loop that is intended to terminate, make sure that all the necessary exit conditions can be satisfied and that loop termination is clear.\n\n\n## Example\nThe following example shows a potentially infinite loop, since the inner loop condition is constantly true. Of course, the loop may or may not be infinite depending on the behavior of `shouldBreak`, but if this was intended as the only exit condition the loop should be rewritten to make this clear.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; i<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\nTo fix the loop the condition is corrected to check the right variable.\n\n\n```java\nfor (int i=0; i<10; i++) {\n    for (int j=0; j<10; j++) {\n        // do stuff\n        if (shouldBreak()) break;\n    }\n}\n\n```\n\n## References\n* Java Language Specification: [Blocks and Statements](https://docs.oracle.com/javase/specs/jls/se11/html/jls-14.html).\n* Common Weakness Enumeration: [CWE-835](https://cwe.mitre.org/data/definitions/835.html).\n"
+                },
+                "id": "java/unreachable-exit-in-loop",
+                "name": "java/unreachable-exit-in-loop",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-835/InfiniteLoop.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-835",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Loop with unreachable exit condition"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "A lock that is acquired one or more times without a matching number of unlocks may cause a deadlock."
+                },
+                "help": {
+                  "markdown": "# Unreleased lock\nWhen a thread acquires a lock it must make sure to unlock it again; failing to do so can lead to deadlocks. If a lock allows a thread to acquire it multiple times, for example `java.util.concurrent.locks.ReentrantLock`, then the number of locks must match the number of unlocks in order to fully release the lock.\n\n\n## Recommendation\nIt is recommended practice always to immediately follow a call to `lock` with a `try` block and place the call to `unlock` inside the `finally` block. Beware of calls inside the `finally` block that could cause exceptions, as this may result in skipping the call to `unlock`.\n\n\n## Example\nThe typical pattern for using locks safely looks like this:\n\n\n```java\npublic void m() {\n   lock.lock();\n   // A\n   try {\n      // ... method body\n   } finally {\n      // B\n      lock.unlock();\n   }\n}\n```\nIf any code that can cause a premature method exit (for example by throwing an exception) is inserted at either point `A` or `B` then the method might not unlock, so this should be avoided.\n\n\n## References\n* Java API Specification: [java.util.concurrent.locks.Lock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/Lock.html), [java.util.concurrent.locks.ReentrantLock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html).\n* Common Weakness Enumeration: [CWE-764](https://cwe.mitre.org/data/definitions/764.html).\n* Common Weakness Enumeration: [CWE-833](https://cwe.mitre.org/data/definitions/833.html).\n",
+                  "text": "# Unreleased lock\nWhen a thread acquires a lock it must make sure to unlock it again; failing to do so can lead to deadlocks. If a lock allows a thread to acquire it multiple times, for example `java.util.concurrent.locks.ReentrantLock`, then the number of locks must match the number of unlocks in order to fully release the lock.\n\n\n## Recommendation\nIt is recommended practice always to immediately follow a call to `lock` with a `try` block and place the call to `unlock` inside the `finally` block. Beware of calls inside the `finally` block that could cause exceptions, as this may result in skipping the call to `unlock`.\n\n\n## Example\nThe typical pattern for using locks safely looks like this:\n\n\n```java\npublic void m() {\n   lock.lock();\n   // A\n   try {\n      // ... method body\n   } finally {\n      // B\n      lock.unlock();\n   }\n}\n```\nIf any code that can cause a premature method exit (for example by throwing an exception) is inserted at either point `A` or `B` then the method might not unlock, so this should be avoided.\n\n\n## References\n* Java API Specification: [java.util.concurrent.locks.Lock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/Lock.html), [java.util.concurrent.locks.ReentrantLock](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html).\n* Common Weakness Enumeration: [CWE-764](https://cwe.mitre.org/data/definitions/764.html).\n* Common Weakness Enumeration: [CWE-833](https://cwe.mitre.org/data/definitions/833.html).\n"
+                },
+                "id": "java/unreleased-lock",
+                "name": "java/unreleased-lock",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Likely%20Bugs/Concurrency/UnreleasedLock.ql",
+                  "security-severity": "5",
+                  "tags": [
+                    "external/cwe/cwe-764",
+                    "external/cwe/cwe-833",
+                    "reliability",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unreleased lock"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "SSLSocket/SSLEngine ignores all SSL certificate validation errors when establishing an HTTPS connection, thereby making the app vulnerable to man-in-the-middle attacks."
+                },
+                "help": {
+                  "markdown": "# Unsafe certificate trust\nJava offers two mechanisms for SSL authentication - trust manager and hostname verifier (the later is checked by the `java/insecure-hostname-verifier` query). The trust manager validates the peer's certificate chain while hostname verification establishes that the hostname in the URL matches the hostname in the server's identification.\n\nWhen `SSLSocket` or `SSLEngine` are created without a secure `setEndpointIdentificationAlgorithm`, hostname verification is disabled by default.\n\nThis query checks whether `setEndpointIdentificationAlgorithm` is missing, thereby making the application vulnerable to man-in-the-middle attacks. The query also covers insecure configurations of `com.rabbitmq.client.ConnectionFactory`.\n\n\n## Recommendation\nValidate SSL certificates in SSL authentication.\n\n\n## Example\nThe following two examples show two ways of configuring SSLSocket/SSLEngine. In the 'BAD' case, `setEndpointIdentificationAlgorithm` is not called, thus no hostname verification takes place. In the 'GOOD' case, `setEndpointIdentificationAlgorithm` is called.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();\n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL engine to trigger hostname verification\n\t\tsslEngine.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();  //BAD: No endpointIdentificationAlgorithm set\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tfinal SSLSocketFactory socketFactory = sslContext.getSocketFactory();\n\t\tSSLSocket socket = (SSLSocket) socketFactory.createSocket(\"www.example.com\", 443); \n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL socket to trigger hostname verification\n\t\tsocket.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol();\n\t\tconnectionFactory.enableHostnameVerification();  //GOOD: Enable hostname verification for rabbitmq ConnectionFactory\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol(); //BAD: Hostname verification for rabbitmq ConnectionFactory is not enabled\n\t}\n}\n```\n\n## References\n* [Testing Endpoint Identify Verification (MSTG-NETWORK-3)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md).\n* [SSLParameters.setEndpointIdentificationAlgorithm documentation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLParameters.html#setEndpointIdentificationAlgorithm(java.lang.String)).\n* RabbitMQ: [ConnectionFactory.enableHostnameVerification documentation](https://rabbitmq.github.io/rabbitmq-java-client/api/current/com/rabbitmq/client/ConnectionFactory.html#enableHostnameVerification()).\n* RabbitMQ: [Using TLS in the Java Client](https://www.rabbitmq.com/ssl.html#java-client).\n* [CVE-2018-17187: Apache Qpid Proton-J transport issue with hostname verification](https://github.com/advisories/GHSA-xvch-r4wf-h8w9).\n* [CVE-2018-8034: Apache Tomcat - host name verification when using TLS with the WebSocket client](https://github.com/advisories/GHSA-46j3-r4pj-4835).\n* [CVE-2018-11087: Pivotal Spring AMQP vulnerability due to lack of hostname validation](https://github.com/advisories/GHSA-w4g2-9hj6-5472).\n* [CVE-2018-11775: TLS hostname verification issue when using the Apache ActiveMQ Client](https://github.com/advisories/GHSA-m9w8-v359-9ffr).\n* Common Weakness Enumeration: [CWE-273](https://cwe.mitre.org/data/definitions/273.html).\n",
+                  "text": "# Unsafe certificate trust\nJava offers two mechanisms for SSL authentication - trust manager and hostname verifier (the later is checked by the `java/insecure-hostname-verifier` query). The trust manager validates the peer's certificate chain while hostname verification establishes that the hostname in the URL matches the hostname in the server's identification.\n\nWhen `SSLSocket` or `SSLEngine` are created without a secure `setEndpointIdentificationAlgorithm`, hostname verification is disabled by default.\n\nThis query checks whether `setEndpointIdentificationAlgorithm` is missing, thereby making the application vulnerable to man-in-the-middle attacks. The query also covers insecure configurations of `com.rabbitmq.client.ConnectionFactory`.\n\n\n## Recommendation\nValidate SSL certificates in SSL authentication.\n\n\n## Example\nThe following two examples show two ways of configuring SSLSocket/SSLEngine. In the 'BAD' case, `setEndpointIdentificationAlgorithm` is not called, thus no hostname verification takes place. In the 'GOOD' case, `setEndpointIdentificationAlgorithm` is called.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();\n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL engine to trigger hostname verification\n\t\tsslEngine.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tSSLEngine sslEngine = sslContext.createSSLEngine();  //BAD: No endpointIdentificationAlgorithm set\n\t}\n\n\t{\n\t\tSSLContext sslContext = SSLContext.getInstance(\"TLS\");\n\t\tfinal SSLSocketFactory socketFactory = sslContext.getSocketFactory();\n\t\tSSLSocket socket = (SSLSocket) socketFactory.createSocket(\"www.example.com\", 443); \n\t\tSSLParameters sslParameters = sslEngine.getSSLParameters();\n\t\tsslParameters.setEndpointIdentificationAlgorithm(\"HTTPS\"); //GOOD: Set a valid endpointIdentificationAlgorithm for SSL socket to trigger hostname verification\n\t\tsocket.setSSLParameters(sslParameters);\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol();\n\t\tconnectionFactory.enableHostnameVerification();  //GOOD: Enable hostname verification for rabbitmq ConnectionFactory\n\t}\n\n\t{\n\t\tcom.rabbitmq.client.ConnectionFactory connectionFactory = new com.rabbitmq.client.ConnectionFactory();\n\t\tconnectionFactory.useSslProtocol(); //BAD: Hostname verification for rabbitmq ConnectionFactory is not enabled\n\t}\n}\n```\n\n## References\n* [Testing Endpoint Identify Verification (MSTG-NETWORK-3)](https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md).\n* [SSLParameters.setEndpointIdentificationAlgorithm documentation](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/net/ssl/SSLParameters.html#setEndpointIdentificationAlgorithm(java.lang.String)).\n* RabbitMQ: [ConnectionFactory.enableHostnameVerification documentation](https://rabbitmq.github.io/rabbitmq-java-client/api/current/com/rabbitmq/client/ConnectionFactory.html#enableHostnameVerification()).\n* RabbitMQ: [Using TLS in the Java Client](https://www.rabbitmq.com/ssl.html#java-client).\n* [CVE-2018-17187: Apache Qpid Proton-J transport issue with hostname verification](https://github.com/advisories/GHSA-xvch-r4wf-h8w9).\n* [CVE-2018-8034: Apache Tomcat - host name verification when using TLS with the WebSocket client](https://github.com/advisories/GHSA-46j3-r4pj-4835).\n* [CVE-2018-11087: Pivotal Spring AMQP vulnerability due to lack of hostname validation](https://github.com/advisories/GHSA-w4g2-9hj6-5472).\n* [CVE-2018-11775: TLS hostname verification issue when using the Apache ActiveMQ Client](https://github.com/advisories/GHSA-m9w8-v359-9ffr).\n* Common Weakness Enumeration: [CWE-273](https://cwe.mitre.org/data/definitions/273.html).\n"
+                },
+                "id": "java/unsafe-cert-trust",
+                "name": "java/unsafe-cert-trust",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-273/UnsafeCertTrust.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-273",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unsafe certificate trust"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Deserializing user-controlled data may allow attackers to execute arbitrary code."
+                },
+                "help": {
+                  "markdown": "# Deserialization of user-controlled data\nDeserializing untrusted data using any deserialization framework that allows the construction of arbitrary serializable objects is easily exploitable and in many cases allows an attacker to execute arbitrary code. Even before a deserialized object is returned to the caller of a deserialization method a lot of code may have been executed, including static initializers, constructors, and finalizers. Automatic deserialization of fields means that an attacker may craft a nested combination of objects on which the executed initialization code may have unforeseen effects, such as the execution of arbitrary code.\n\nThere are many different serialization frameworks. This query currently supports Kryo, XmlDecoder, XStream, SnakeYaml, JYaml, JsonIO, YAMLBeans, HessianBurlap, Castor, Burlap, Jackson, Jabsorb, Jodd JSON, Flexjson, Gson, JMS, and Java IO serialization through `ObjectInputStream`/`ObjectOutputStream`.\n\n\n## Recommendation\nAvoid deserialization of untrusted data if at all possible. If the architecture permits it then use other formats instead of serialized objects, for example JSON or XML. However, these formats should not be deserialized into complex objects because this provides further opportunities for attack. For example, XML-based deserialization attacks are possible through libraries such as XStream and XmlDecoder.\n\nAlternatively, a tightly controlled whitelist can limit the vulnerability of code, but be aware of the existence of so-called Bypass Gadgets, which can circumvent such protection measures.\n\nRecommendations specific to particular frameworks supported by this query:\n\n**FastJson** - `com.alibaba:fastjson`\n\n* **Secure by Default**: Partially\n* **Recommendation**: Call `com.alibaba.fastjson.parser.ParserConfig#setSafeMode` with the argument `true` before deserializing untrusted data.\n\n\n**FasterXML** - `com.fasterxml.jackson.core:jackson-databind`\n\n* **Secure by Default**: Yes\n* **Recommendation**: Don't call `com.fasterxml.jackson.databind.ObjectMapper#enableDefaultTyping` and don't annotate any object fields with `com.fasterxml.jackson.annotation.JsonTypeInfo` passing either the `CLASS` or `MINIMAL_CLASS` values to the annotation. Read [this guide](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba).\n\n\n**Kryo** - `com.esotericsoftware:kryo` and `com.esotericsoftware:kryo5`\n\n* **Secure by Default**: Yes for `com.esotericsoftware:kryo5` and for `com.esotericsoftware:kryo` >= v5.0.0\n* **Recommendation**: Don't call `com.esotericsoftware.kryo(5).Kryo#setRegistrationRequired` with the argument `false` on any `Kryo` instance that may deserialize untrusted data.\n\n\n**ObjectInputStream** - `Java Standard Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Use a validating input stream, such as `org.apache.commons.io.serialization.ValidatingObjectInputStream`.\n\n\n**SnakeYAML** - `org.yaml:snakeyaml`\n\n* **Secure by Default**: No\n* **Recommendation**: Pass an instance of `org.yaml.snakeyaml.constructor.SafeConstructor` to `org.yaml.snakeyaml.Yaml`'s constructor before using it to deserialize untrusted data.\n\n\n**XML Decoder** - `Standard Java Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Do not use with untrusted user input.\n\n\n**ObjectMesssage** - `Java EE/Jakarta EE`\n\n* **Secure by Default**: Depends on the JMS implementation.\n* **Recommendation**: Do not use with untrusted user input.\n\n\n\n## Example\nThe following example calls `readObject` directly on an `ObjectInputStream` that is constructed from untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic MyObject {\n  public int field;\n  MyObject(int field) {\n    this.field = field;\n  }\n}\n\npublic MyObject deserialize(Socket sock) {\n  try(ObjectInputStream in = new ObjectInputStream(sock.getInputStream())) {\n    return (MyObject)in.readObject(); // unsafe\n  }\n}\n\n```\nRewriting the communication protocol to only rely on reading primitive types from the input stream removes the vulnerability.\n\n\n```java\npublic MyObject deserialize(Socket sock) {\n  try(DataInputStream in = new DataInputStream(sock.getInputStream())) {\n    return new MyObject(in.readInt());\n  }\n}\n\n```\n\n## References\n* OWASP vulnerability description: [Deserialization of untrusted data](https://www.owasp.org/index.php/Deserialization_of_untrusted_data).\n* OWASP guidance on deserializing objects: [Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html).\n* Talks by Chris Frohoff & Gabriel Lawrence: [ AppSecCali 2015: Marshalling Pickles - how deserializing objects will ruin your day](http://frohoff.github.io/appseccali-marshalling-pickles/), [OWASP SD: Deserialize My Shorts: Or How I Learned to Start Worrying and Hate Java Object Deserialization](http://frohoff.github.io/owaspsd-deserialize-my-shorts/).\n* Alvaro Muñoz & Christian Schneider, RSAConference 2016: [Serial Killer: Silently Pwning Your Java Endpoints](https://speakerdeck.com/pwntester/serial-killer-silently-pwning-your-java-endpoints).\n* SnakeYaml documentation on deserialization: [SnakeYaml deserialization](https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation#markdown-header-loading-yaml).\n* Hessian deserialization and related gadget chains: [Hessian deserialization](https://paper.seebug.org/1137/).\n* Castor and Hessian java deserialization vulnerabilities: [Castor and Hessian deserialization](https://securitylab.github.com/research/hessian-java-deserialization-castor-vulnerabilities/).\n* Remote code execution in JYaml library: [JYaml deserialization](https://www.cybersecurity-help.cz/vdb/SB2020022512).\n* JsonIO deserialization vulnerabilities: [JsonIO deserialization](https://klezvirus.github.io/Advanced-Web-Hacking/Serialisation/).\n* Research by Moritz Bechler: [Java Unmarshaller Security - Turning your data into code execution](https://www.github.com/mbechler/marshalsec/blob/master/marshalsec.pdf?raw=true)\n* Blog posts by the developer of Jackson libraries: [On Jackson CVEs: Don’t Panic — Here is what you need to know](https://cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062) [Jackson 2.10: Safe Default Typing](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba)\n* Jabsorb documentation on deserialization: [Jabsorb JSON Serializer](https://github.com/Servoy/jabsorb/blob/master/src/org/jabsorb/).\n* Jodd JSON documentation on deserialization: [JoddJson Parser](https://json.jodd.org/parser).\n* RCE in Flexjson: [Flexjson deserialization](https://codewhitesec.blogspot.com/2020/03/liferay-portal-json-vulns.html).\n* Android Intent deserialization vulnerabilities with GSON parser: [Insecure use of JSON parsers](https://blog.oversecured.com/Exploiting-memory-corruption-vulnerabilities-on-Android/#insecure-use-of-json-parsers).\n* Research by Matthias Kaiser: [Pwning Your Java Messaging With Deserialization Vulnerabilities](https://www.blackhat.com/docs/us-16/materials/us-16-Kaiser-Pwning-Your-Java-Messaging-With-Deserialization-Vulnerabilities.pdf).\n* Common Weakness Enumeration: [CWE-502](https://cwe.mitre.org/data/definitions/502.html).\n",
+                  "text": "# Deserialization of user-controlled data\nDeserializing untrusted data using any deserialization framework that allows the construction of arbitrary serializable objects is easily exploitable and in many cases allows an attacker to execute arbitrary code. Even before a deserialized object is returned to the caller of a deserialization method a lot of code may have been executed, including static initializers, constructors, and finalizers. Automatic deserialization of fields means that an attacker may craft a nested combination of objects on which the executed initialization code may have unforeseen effects, such as the execution of arbitrary code.\n\nThere are many different serialization frameworks. This query currently supports Kryo, XmlDecoder, XStream, SnakeYaml, JYaml, JsonIO, YAMLBeans, HessianBurlap, Castor, Burlap, Jackson, Jabsorb, Jodd JSON, Flexjson, Gson, JMS, and Java IO serialization through `ObjectInputStream`/`ObjectOutputStream`.\n\n\n## Recommendation\nAvoid deserialization of untrusted data if at all possible. If the architecture permits it then use other formats instead of serialized objects, for example JSON or XML. However, these formats should not be deserialized into complex objects because this provides further opportunities for attack. For example, XML-based deserialization attacks are possible through libraries such as XStream and XmlDecoder.\n\nAlternatively, a tightly controlled whitelist can limit the vulnerability of code, but be aware of the existence of so-called Bypass Gadgets, which can circumvent such protection measures.\n\nRecommendations specific to particular frameworks supported by this query:\n\n**FastJson** - `com.alibaba:fastjson`\n\n* **Secure by Default**: Partially\n* **Recommendation**: Call `com.alibaba.fastjson.parser.ParserConfig#setSafeMode` with the argument `true` before deserializing untrusted data.\n\n\n**FasterXML** - `com.fasterxml.jackson.core:jackson-databind`\n\n* **Secure by Default**: Yes\n* **Recommendation**: Don't call `com.fasterxml.jackson.databind.ObjectMapper#enableDefaultTyping` and don't annotate any object fields with `com.fasterxml.jackson.annotation.JsonTypeInfo` passing either the `CLASS` or `MINIMAL_CLASS` values to the annotation. Read [this guide](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba).\n\n\n**Kryo** - `com.esotericsoftware:kryo` and `com.esotericsoftware:kryo5`\n\n* **Secure by Default**: Yes for `com.esotericsoftware:kryo5` and for `com.esotericsoftware:kryo` >= v5.0.0\n* **Recommendation**: Don't call `com.esotericsoftware.kryo(5).Kryo#setRegistrationRequired` with the argument `false` on any `Kryo` instance that may deserialize untrusted data.\n\n\n**ObjectInputStream** - `Java Standard Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Use a validating input stream, such as `org.apache.commons.io.serialization.ValidatingObjectInputStream`.\n\n\n**SnakeYAML** - `org.yaml:snakeyaml`\n\n* **Secure by Default**: No\n* **Recommendation**: Pass an instance of `org.yaml.snakeyaml.constructor.SafeConstructor` to `org.yaml.snakeyaml.Yaml`'s constructor before using it to deserialize untrusted data.\n\n\n**XML Decoder** - `Standard Java Library`\n\n* **Secure by Default**: No\n* **Recommendation**: Do not use with untrusted user input.\n\n\n**ObjectMesssage** - `Java EE/Jakarta EE`\n\n* **Secure by Default**: Depends on the JMS implementation.\n* **Recommendation**: Do not use with untrusted user input.\n\n\n\n## Example\nThe following example calls `readObject` directly on an `ObjectInputStream` that is constructed from untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic MyObject {\n  public int field;\n  MyObject(int field) {\n    this.field = field;\n  }\n}\n\npublic MyObject deserialize(Socket sock) {\n  try(ObjectInputStream in = new ObjectInputStream(sock.getInputStream())) {\n    return (MyObject)in.readObject(); // unsafe\n  }\n}\n\n```\nRewriting the communication protocol to only rely on reading primitive types from the input stream removes the vulnerability.\n\n\n```java\npublic MyObject deserialize(Socket sock) {\n  try(DataInputStream in = new DataInputStream(sock.getInputStream())) {\n    return new MyObject(in.readInt());\n  }\n}\n\n```\n\n## References\n* OWASP vulnerability description: [Deserialization of untrusted data](https://www.owasp.org/index.php/Deserialization_of_untrusted_data).\n* OWASP guidance on deserializing objects: [Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html).\n* Talks by Chris Frohoff & Gabriel Lawrence: [ AppSecCali 2015: Marshalling Pickles - how deserializing objects will ruin your day](http://frohoff.github.io/appseccali-marshalling-pickles/), [OWASP SD: Deserialize My Shorts: Or How I Learned to Start Worrying and Hate Java Object Deserialization](http://frohoff.github.io/owaspsd-deserialize-my-shorts/).\n* Alvaro Muñoz & Christian Schneider, RSAConference 2016: [Serial Killer: Silently Pwning Your Java Endpoints](https://speakerdeck.com/pwntester/serial-killer-silently-pwning-your-java-endpoints).\n* SnakeYaml documentation on deserialization: [SnakeYaml deserialization](https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation#markdown-header-loading-yaml).\n* Hessian deserialization and related gadget chains: [Hessian deserialization](https://paper.seebug.org/1137/).\n* Castor and Hessian java deserialization vulnerabilities: [Castor and Hessian deserialization](https://securitylab.github.com/research/hessian-java-deserialization-castor-vulnerabilities/).\n* Remote code execution in JYaml library: [JYaml deserialization](https://www.cybersecurity-help.cz/vdb/SB2020022512).\n* JsonIO deserialization vulnerabilities: [JsonIO deserialization](https://klezvirus.github.io/Advanced-Web-Hacking/Serialisation/).\n* Research by Moritz Bechler: [Java Unmarshaller Security - Turning your data into code execution](https://www.github.com/mbechler/marshalsec/blob/master/marshalsec.pdf?raw=true)\n* Blog posts by the developer of Jackson libraries: [On Jackson CVEs: Don’t Panic — Here is what you need to know](https://cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062) [Jackson 2.10: Safe Default Typing](https://cowtowncoder.medium.com/jackson-2-10-safe-default-typing-2d018f0ce2ba)\n* Jabsorb documentation on deserialization: [Jabsorb JSON Serializer](https://github.com/Servoy/jabsorb/blob/master/src/org/jabsorb/).\n* Jodd JSON documentation on deserialization: [JoddJson Parser](https://json.jodd.org/parser).\n* RCE in Flexjson: [Flexjson deserialization](https://codewhitesec.blogspot.com/2020/03/liferay-portal-json-vulns.html).\n* Android Intent deserialization vulnerabilities with GSON parser: [Insecure use of JSON parsers](https://blog.oversecured.com/Exploiting-memory-corruption-vulnerabilities-on-Android/#insecure-use-of-json-parsers).\n* Research by Matthias Kaiser: [Pwning Your Java Messaging With Deserialization Vulnerabilities](https://www.blackhat.com/docs/us-16/materials/us-16-Kaiser-Pwning-Your-Java-Messaging-With-Deserialization-Vulnerabilities.pdf).\n* Common Weakness Enumeration: [CWE-502](https://cwe.mitre.org/data/definitions/502.html).\n"
+                },
+                "id": "java/unsafe-deserialization",
+                "name": "java/unsafe-deserialization",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-502/UnsafeDeserialization.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-502",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Deserialization of user-controlled data"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Marking a certificate as valid for a host without checking the certificate hostname allows an attacker to perform a machine-in-the-middle attack."
+                },
+                "help": {
+                  "markdown": "# Unsafe hostname verification\nIf a `HostnameVerifier` always returns `true` it will not verify the hostname at all. This stops Transport Layer Security (TLS) providing any security and allows an attacker to perform a man-in-the-middle attack against the application.\n\nAn attack might look like this:\n\n1. The program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents an apparently-valid certificate of their choosing.\n1. The `TrustManager` of the program verifies that the certificate has been issued by a trusted certificate authority.\n1. The Java HTTPS library checks whether the certificate has been issued for the host `example.com`. This check fails because the certificate has been issued for a domain controlled by the attacker, for example: `malicious.domain`.\n1. The HTTPS library wants to reject the certificate because the hostname does not match. Before doing this it checks whether a `HostnameVerifier` exists.\n1. Your `HostnameVerifier` is called which returns `true` for any certificate so also for this one.\n1. The program proceeds with the connection since your `HostnameVerifier` accepted it.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use an open `HostnameVerifier`. If you have a configuration problem with TLS/HTTPS, you should always solve the configuration problem instead of using an open verifier.\n\n\n## Example\nIn the first (bad) example, the `HostnameVerifier` always returns `true`. This allows an attacker to perform a man-in-the-middle attack, because any certificate is accepted despite an incorrect hostname. In the second (good) example, the `HostnameVerifier` only returns `true` when the certificate has been correctly checked.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\treturn true; // BAD: accept even if the hostname doesn't match\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\ttry { // GOOD: verify the certificate\n\t\t\t\t\tCertificate[] certs = session.getPeerCertificates();\n\t\t\t\t\tX509Certificate x509 = (X509Certificate) certs[0];\n\t\t\t\t\tcheck(new String[]{host}, x509);\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (SSLException e) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n}\n```\n\n## References\n* Android developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Terse systems blog: [Fixing Hostname Verification](https://tersesystems.com/blog/2014/03/23/fixing-hostname-verification/).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n",
+                  "text": "# Unsafe hostname verification\nIf a `HostnameVerifier` always returns `true` it will not verify the hostname at all. This stops Transport Layer Security (TLS) providing any security and allows an attacker to perform a man-in-the-middle attack against the application.\n\nAn attack might look like this:\n\n1. The program connects to `https://example.com`.\n1. The attacker intercepts this connection and presents an apparently-valid certificate of their choosing.\n1. The `TrustManager` of the program verifies that the certificate has been issued by a trusted certificate authority.\n1. The Java HTTPS library checks whether the certificate has been issued for the host `example.com`. This check fails because the certificate has been issued for a domain controlled by the attacker, for example: `malicious.domain`.\n1. The HTTPS library wants to reject the certificate because the hostname does not match. Before doing this it checks whether a `HostnameVerifier` exists.\n1. Your `HostnameVerifier` is called which returns `true` for any certificate so also for this one.\n1. The program proceeds with the connection since your `HostnameVerifier` accepted it.\n1. The attacker can now read the data your program sends to `https://example.com` and/or alter its replies while the program thinks the connection is secure.\n\n## Recommendation\nDo not use an open `HostnameVerifier`. If you have a configuration problem with TLS/HTTPS, you should always solve the configuration problem instead of using an open verifier.\n\n\n## Example\nIn the first (bad) example, the `HostnameVerifier` always returns `true`. This allows an attacker to perform a man-in-the-middle attack, because any certificate is accepted despite an incorrect hostname. In the second (good) example, the `HostnameVerifier` only returns `true` when the certificate has been correctly checked.\n\n\n```java\npublic static void main(String[] args) {\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\treturn true; // BAD: accept even if the hostname doesn't match\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n\t{\n\t\tHostnameVerifier verifier = new HostnameVerifier() {\n\t\t\t@Override\n\t\t\tpublic boolean verify(String hostname, SSLSession session) {\n\t\t\t\ttry { // GOOD: verify the certificate\n\t\t\t\t\tCertificate[] certs = session.getPeerCertificates();\n\t\t\t\t\tX509Certificate x509 = (X509Certificate) certs[0];\n\t\t\t\t\tcheck(new String[]{host}, x509);\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (SSLException e) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tHttpsURLConnection.setDefaultHostnameVerifier(verifier);\n\t}\n\n}\n```\n\n## References\n* Android developers: [Security with HTTPS and SSL](https://developer.android.com/training/articles/security-ssl).\n* Terse systems blog: [Fixing Hostname Verification](https://tersesystems.com/blog/2014/03/23/fixing-hostname-verification/).\n* Common Weakness Enumeration: [CWE-297](https://cwe.mitre.org/data/definitions/297.html).\n"
+                },
+                "id": "java/unsafe-hostname-verification",
+                "name": "java/unsafe-hostname-verification",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql",
+                  "security-severity": "5.9",
+                  "tags": [
+                    "external/cwe/cwe-297",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Unsafe hostname verification"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "URL forward based on unvalidated user input may cause file information disclosure."
+                },
+                "help": {
+                  "markdown": "# URL forward from a remote source\nDirectly incorporating user input into a URL forward request without validating the input can cause file information disclosure by allowing an attacker to access unauthorized URLs.\n\n\n## Recommendation\nTo guard against untrusted URL forwarding, you should avoid putting user input directly into a forwarded URL. Instead, you should maintain a list of authorized URLs on the server, then choose from that list based on the user input provided.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL forward without validating the input, which may cause file information disclosure. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\npublic class UrlForward extends HttpServlet {\n\tprivate static final String VALID_FORWARD = \"https://cwe.mitre.org/data/definitions/552.html\";\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\t\tthrows ServletException, IOException {\n\t\tServletConfig cfg = getServletConfig();\n\t\tServletContext sc = cfg.getServletContext();\n\n\t\t// BAD: a request parameter is incorporated without validation into a URL forward\n\t\tsc.getRequestDispatcher(request.getParameter(\"target\")).forward(request, response);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_FORWARD.equals(request.getParameter(\"target\"))) {\n\t\t\tsc.getRequestDispatcher(VALID_FORWARD).forward(request, response);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* OWASP: [Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-552](https://cwe.mitre.org/data/definitions/552.html).\n",
+                  "text": "# URL forward from a remote source\nDirectly incorporating user input into a URL forward request without validating the input can cause file information disclosure by allowing an attacker to access unauthorized URLs.\n\n\n## Recommendation\nTo guard against untrusted URL forwarding, you should avoid putting user input directly into a forwarded URL. Instead, you should maintain a list of authorized URLs on the server, then choose from that list based on the user input provided.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL forward without validating the input, which may cause file information disclosure. It also shows how to remedy the problem by validating the user input against a known fixed string.\n\n\n```java\npublic class UrlForward extends HttpServlet {\n\tprivate static final String VALID_FORWARD = \"https://cwe.mitre.org/data/definitions/552.html\";\n\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\t\t\tthrows ServletException, IOException {\n\t\tServletConfig cfg = getServletConfig();\n\t\tServletContext sc = cfg.getServletContext();\n\n\t\t// BAD: a request parameter is incorporated without validation into a URL forward\n\t\tsc.getRequestDispatcher(request.getParameter(\"target\")).forward(request, response);\n\n\t\t// GOOD: the request parameter is validated against a known fixed string\n\t\tif (VALID_FORWARD.equals(request.getParameter(\"target\"))) {\n\t\t\tsc.getRequestDispatcher(VALID_FORWARD).forward(request, response);\n\t\t}\n\t}\n}\n\n```\n\n## References\n* OWASP: [Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Common Weakness Enumeration: [CWE-552](https://cwe.mitre.org/data/definitions/552.html).\n"
+                },
+                "id": "java/unvalidated-url-forward",
+                "name": "java/unvalidated-url-forward",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-552/UrlForward.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-552",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "URL forward from a remote source"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "URL redirection based on unvalidated user-input may cause redirection to malicious web sites."
+                },
+                "help": {
+                  "markdown": "# URL redirection from remote source\nDirectly incorporating user input into a URL redirect request without validating the input can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\nIf this is not possible, then the user input should be validated in some other way, for example, by verifying that the target URL is on the same host as the current page.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL redirect without validating the input, which facilitates phishing attacks:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // BAD: a request parameter is incorporated without validation into a URL redirect\n    response.sendRedirect(request.getParameter(\"target\"));\n  }\n}\n```\nOne way to remedy the problem is to validate the user input against a known fixed string before doing the redirection:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  private static final List VALID_REDIRECTS = Arrays.asList(\n    \"http://cwe.mitre.org/data/definitions/601.html\",\n    \"http://cwe.mitre.org/data/definitions/79.html\"\n  );\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // GOOD: the request parameter is validated against a known list of strings\n    String target = request.getParameter(\"target\");\n    if (VALID_REDIRECTS.contains(target)) {\n        response.sendRedirect(target);\n    } else {\n        response.sendRedirect(\"/error.html\");\n    }\n  }\n}\n```\nAlternatively, we can check that the target URL does not redirect to a different host by checking that the URL is either relative or on a known good host:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    try {\n      String urlString = request.getParameter(\"page\");\n      URI url = new URI(urlString);\n\n      if (!url.isAbsolute()) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a relative URL\n      }\n\n      if (\"example.org\".equals(url.getHost())) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a known host\n      }\n    } catch (URISyntaxException e) {\n        // handle exception\n    }\n  }\n}\n```\nNote that as written, the above code will allow redirects to URLs on `example.com`, which is harmless but perhaps not intended. You can substitute your own domain (if known) for `example.com` to prevent this.\n\n\n## References\n* OWASP: [ Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Microsoft Docs: [Preventing Open Redirection Attacks (C\\#)](https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n",
+                  "text": "# URL redirection from remote source\nDirectly incorporating user input into a URL redirect request without validating the input can facilitate phishing attacks. In these attacks, unsuspecting users can be redirected to a malicious site that looks very similar to the real site they intend to visit, but which is controlled by the attacker.\n\n\n## Recommendation\nTo guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.\n\nIf this is not possible, then the user input should be validated in some other way, for example, by verifying that the target URL is on the same host as the current page.\n\n\n## Example\nThe following example shows an HTTP request parameter being used directly in a URL redirect without validating the input, which facilitates phishing attacks:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // BAD: a request parameter is incorporated without validation into a URL redirect\n    response.sendRedirect(request.getParameter(\"target\"));\n  }\n}\n```\nOne way to remedy the problem is to validate the user input against a known fixed string before doing the redirection:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  private static final List VALID_REDIRECTS = Arrays.asList(\n    \"http://cwe.mitre.org/data/definitions/601.html\",\n    \"http://cwe.mitre.org/data/definitions/79.html\"\n  );\n\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    // GOOD: the request parameter is validated against a known list of strings\n    String target = request.getParameter(\"target\");\n    if (VALID_REDIRECTS.contains(target)) {\n        response.sendRedirect(target);\n    } else {\n        response.sendRedirect(\"/error.html\");\n    }\n  }\n}\n```\nAlternatively, we can check that the target URL does not redirect to a different host by checking that the URL is either relative or on a known good host:\n\n\n```java\npublic class UrlRedirect extends HttpServlet {\n  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    try {\n      String urlString = request.getParameter(\"page\");\n      URI url = new URI(urlString);\n\n      if (!url.isAbsolute()) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a relative URL\n      }\n\n      if (\"example.org\".equals(url.getHost())) {\n        response.sendRedirect(url.toString()); // GOOD: The redirect is to a known host\n      }\n    } catch (URISyntaxException e) {\n        // handle exception\n    }\n  }\n}\n```\nNote that as written, the above code will allow redirects to URLs on `example.com`, which is harmless but perhaps not intended. You can substitute your own domain (if known) for `example.com` to prevent this.\n\n\n## References\n* OWASP: [ Unvalidated Redirects and Forwards Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html).\n* Microsoft Docs: [Preventing Open Redirection Attacks (C\\#)](https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks).\n* Common Weakness Enumeration: [CWE-601](https://cwe.mitre.org/data/definitions/601.html).\n"
+                },
+                "id": "java/unvalidated-url-redirection",
+                "name": "java/unvalidated-url-redirection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-601",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "URL redirection from remote source"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "User-controlled bypassing of sensitive methods may allow attackers to avoid passing through authentication systems."
+                },
+                "help": {
+                  "markdown": "# User-controlled bypass of sensitive method\nMany Java constructs enable code statements to be executed conditionally, for example `if` statements and `for` statements. If these statements contain important authentication or login code, and the decision about whether to execute this code is based on user-controlled data, it may be possible for an attacker to bypass security systems by preventing this code from executing.\n\n\n## Recommendation\nNever decide whether to authenticate a user based on data that may be controlled by that user. If necessary, ensure that the data is validated extensively when it is input before any authentication checks are performed.\n\nIt is still possible to have a system that \"remembers\" users, thus not requiring the user to login on every interaction. For example, personalization settings can be applied without authentication because this is not sensitive information. However, users should be allowed to take sensitive actions only when they have been fully authenticated.\n\n\n## Example\nThis example shows two ways of deciding whether to authenticate a user. The first way shows a decision that is based on the value of a cookie. Cookies can be easily controlled by the user, and so this allows a user to become authenticated without providing valid credentials. The second, more secure way shows a decision that is based on looking up the user in a security database.\n\n\n```java\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\n\t// BAD: login is executed only if the value of 'adminCookie' is 'false', \n\t// but 'adminCookie' is controlled by the user\n\tif(adminCookie.getValue()==\"false\")\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\t\n\t// GOOD: use server-side information based on the credentials to decide\n\t// whether user has privileges\n\tboolean isAdmin = queryDbForAdminStatus(user, password);\n\tif(!isAdmin)\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n",
+                  "text": "# User-controlled bypass of sensitive method\nMany Java constructs enable code statements to be executed conditionally, for example `if` statements and `for` statements. If these statements contain important authentication or login code, and the decision about whether to execute this code is based on user-controlled data, it may be possible for an attacker to bypass security systems by preventing this code from executing.\n\n\n## Recommendation\nNever decide whether to authenticate a user based on data that may be controlled by that user. If necessary, ensure that the data is validated extensively when it is input before any authentication checks are performed.\n\nIt is still possible to have a system that \"remembers\" users, thus not requiring the user to login on every interaction. For example, personalization settings can be applied without authentication because this is not sensitive information. However, users should be allowed to take sensitive actions only when they have been fully authenticated.\n\n\n## Example\nThis example shows two ways of deciding whether to authenticate a user. The first way shows a decision that is based on the value of a cookie. Cookies can be easily controlled by the user, and so this allows a user to become authenticated without providing valid credentials. The second, more secure way shows a decision that is based on looking up the user in a security database.\n\n\n```java\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\n\t// BAD: login is executed only if the value of 'adminCookie' is 'false', \n\t// but 'adminCookie' is controlled by the user\n\tif(adminCookie.getValue()==\"false\")\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n\npublic boolean doLogin(String user, String password) {\n\tCookie adminCookie = getCookies()[0];\n\t\n\t// GOOD: use server-side information based on the credentials to decide\n\t// whether user has privileges\n\tboolean isAdmin = queryDbForAdminStatus(user, password);\n\tif(!isAdmin)\n\t\treturn login(user, password);\n\t\n\treturn true;\n}\n```\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [SEC02-J. Do not base security checks on untrusted sources](https://wiki.sei.cmu.edu/confluence/display/java/SEC02-J.+Do+not+base+security+checks+on+untrusted+sources).\n* Common Weakness Enumeration: [CWE-807](https://cwe.mitre.org/data/definitions/807.html).\n* Common Weakness Enumeration: [CWE-290](https://cwe.mitre.org/data/definitions/290.html).\n"
+                },
+                "id": "java/user-controlled-bypass",
+                "name": "java/user-controlled-bypass",
+                "properties": {
+                  "precision": "medium",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-807/ConditionalBypass.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-290",
+                    "external/cwe/cwe-807",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "User-controlled bypass of sensitive method"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "warning"
+                },
+                "fullDescription": {
+                  "text": "Using broken or weak cryptographic algorithms can allow an attacker to compromise security."
+                },
+                "help": {
+                  "markdown": "# Use of a broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n",
+                  "text": "# Use of a broken or risky cryptographic algorithm\nUsing broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.\n\nMany cryptographic algorithms provided by cryptography libraries are known to be weak, or flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted data.\n\n\n## Recommendation\nEnsure that you use a strong, modern cryptographic algorithm. Use at least AES-128 or RSA-2048. Do not use the ECB encryption mode since it is vulnerable to replay and other attacks.\n\n\n## Example\nThe following code shows an example of using a java `Cipher` to encrypt some data. When creating a `Cipher` instance, you must specify the encryption algorithm to use. The first example uses DES, which is an older algorithm that is now considered weak. The second example uses AES, which is a strong modern algorithm.\n\n\n```java\n// BAD: DES is a weak algorithm \nCipher des = Cipher.getInstance(\"DES\");\ncipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);\n\nbyte[] encrypted = cipher.doFinal(input.getBytes(\"UTF-8\"));\n\n// ...\n\n// GOOD: AES is a strong algorithm\nCipher aes = Cipher.getInstance(\"AES\");\n\n// ...\n\n```\n\n## References\n* NIST, FIPS 140 Annex a: [ Approved Security Functions](http://csrc.nist.gov/publications/fips/fips140-2/fips1402annexa.pdf).\n* NIST, SP 800-131A: [ Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf).\n* Common Weakness Enumeration: [CWE-327](https://cwe.mitre.org/data/definitions/327.html).\n* Common Weakness Enumeration: [CWE-328](https://cwe.mitre.org/data/definitions/328.html).\n"
+                },
+                "id": "java/weak-cryptographic-algorithm",
+                "name": "java/weak-cryptographic-algorithm",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-327",
+                    "external/cwe/cwe-328",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Use of a broken or risky cryptographic algorithm"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Reading from a file which is set as world writable is dangerous because the file may be modified or removed by external actors."
+                },
+                "help": {
+                  "markdown": "# Reading from a world writable file\nReading from a world-writable file is dangerous on a multi-user system because other users may be able to affect program execution by modifying or deleting the file.\n\n\n## Recommendation\nDo not make files explicitly world writable unless the file is intended to be written by multiple users on a multi-user system. In many cases, the file may only need to be writable for the current user.\n\nFor some file systems, there may be alternatives to setting the file to be world writable. For example, POSIX file systems support \"groups\" which may be used to ensure that only subset of all the users can write to the file. Access Control Lists (ACLs) are available for many operating system and file system combinations, and can provide fine-grained read and write support without resorting to world writable permissions.\n\n\n## Example\nIn the following example, we are loading some configuration parameters from a file:\n\n```java\n\nprivate void readConfig(File configFile) {\n  if (!configFile.exists()) {\n    // Create an empty config file\n    configFile.createNewFile();\n    // Make the file writable for all\n    configFile.setWritable(true, false);\n  }\n  // Now read the config\n  loadConfig(configFile);\n}\n\n```\nIf the configuration file does not yet exist, an empty file is created. Creating an empty file can simplify the later code and is a convenience for the user. However, by setting the file to be world writable, we allow any user on the system to modify the configuration, not just the current user. If there may be untrusted users on the system, this is potentially dangerous.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [FIO01-J. Create files with appropriate access permissions](https://wiki.sei.cmu.edu/confluence/display/java/FIO01-J.+Create+files+with+appropriate+access+permissions).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n",
+                  "text": "# Reading from a world writable file\nReading from a world-writable file is dangerous on a multi-user system because other users may be able to affect program execution by modifying or deleting the file.\n\n\n## Recommendation\nDo not make files explicitly world writable unless the file is intended to be written by multiple users on a multi-user system. In many cases, the file may only need to be writable for the current user.\n\nFor some file systems, there may be alternatives to setting the file to be world writable. For example, POSIX file systems support \"groups\" which may be used to ensure that only subset of all the users can write to the file. Access Control Lists (ACLs) are available for many operating system and file system combinations, and can provide fine-grained read and write support without resorting to world writable permissions.\n\n\n## Example\nIn the following example, we are loading some configuration parameters from a file:\n\n```java\n\nprivate void readConfig(File configFile) {\n  if (!configFile.exists()) {\n    // Create an empty config file\n    configFile.createNewFile();\n    // Make the file writable for all\n    configFile.setWritable(true, false);\n  }\n  // Now read the config\n  loadConfig(configFile);\n}\n\n```\nIf the configuration file does not yet exist, an empty file is created. Creating an empty file can simplify the later code and is a convenience for the user. However, by setting the file to be world writable, we allow any user on the system to modify the configuration, not just the current user. If there may be untrusted users on the system, this is potentially dangerous.\n\n\n## References\n* SEI CERT Oracle Coding Standard for Java: [FIO01-J. Create files with appropriate access permissions](https://wiki.sei.cmu.edu/confluence/display/java/FIO01-J.+Create+files+with+appropriate+access+permissions).\n* Common Weakness Enumeration: [CWE-732](https://cwe.mitre.org/data/definitions/732.html).\n"
+                },
+                "id": "java/world-writable-file-read",
+                "name": "java/world-writable-file-read",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-732/ReadingFromWorldWritableFile.ql",
+                  "security-severity": "7.8",
+                  "tags": [
+                    "external/cwe/cwe-732",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Reading from a world writable file"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Building an XPath expression from user-controlled sources is vulnerable to insertion of malicious code by the user."
+                },
+                "help": {
+                  "markdown": "# XPath injection\nIf an XPath expression is built using string concatenation, and the components of the concatenation include user input, it makes it very easy for a user to create a malicious XPath expression.\n\n\n## Recommendation\nIf user input must be included in an XPath expression, either sanitize the data or pre-compile the query and use variable references to include the user input.\n\nXPath injection can also be prevented by using XQuery.\n\n\n## Example\nIn the first three examples, the code accepts a name and password specified by the user, and uses this unvalidated and unsanitized value in an XPath expression. This is vulnerable to the user providing special characters or string sequences that change the meaning of the XPath expression to search for different values.\n\nIn the fourth example, the code uses `setXPathVariableResolver` which prevents XPath injection.\n\nThe final two examples are for dom4j. They show an example of XPath injection and one method of preventing it.\n\n\n```java\nfinal String xmlStr = \"\" + \n                        \"   \" + \n                        \"   \" + \n                        \"\";\ntry {\n    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();\n    domFactory.setNamespaceAware(true);\n    DocumentBuilder builder = domFactory.newDocumentBuilder();\n    //Document doc = builder.parse(\"user.xml\");\n    Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));\n\n    XPathFactory factory = XPathFactory.newInstance();\n    XPath xpath = factory.newXPath();\n\n    // Injectable data\n    String user = request.getParameter(\"user\");\n    String pass = request.getParameter(\"pass\");\n    if (user != null && pass != null) {\n        boolean isExist = false;\n\n        // Bad expression\n        String expression1 = \"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\";\n        isExist = (boolean)xpath.evaluate(expression1, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        XPathExpression expression2 = xpath.compile(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\");\n        isExist = (boolean)expression2.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        StringBuffer sb = new StringBuffer(\"/users/user[@name=\");\n        sb.append(user);\n        sb.append(\"' and @pass='\");\n        sb.append(pass);\n        sb.append(\"']\");\n        String query = sb.toString();\n        XPathExpression expression3 = xpath.compile(query);\n        isExist = (boolean)expression3.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Good expression\n        String expression4 = \"/users/user[@name=$user and @pass=$pass]\";\n        xpath.setXPathVariableResolver(v -> {\n        switch (v.getLocalPart()) {\n            case \"user\":\n                return user;\n            case \"pass\":\n                return pass;\n            default:\n                throw new IllegalArgumentException();\n            }\n        });\n        isExist = (boolean)xpath.evaluate(expression4, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n\n        // Bad Dom4j \n        org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();\n        org.dom4j.Document document = reader.read(new InputSource(new StringReader(xmlStr)));\n        isExist = document.selectSingleNode(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\") != null;\n        // or document.selectNodes\n        System.out.println(isExist);\n\n        // Good Dom4j\n        org.jaxen.SimpleVariableContext svc = new org.jaxen.SimpleVariableContext();\n        svc.setVariableValue(\"user\", user);\n        svc.setVariableValue(\"pass\", pass);\n        String xpathString = \"/users/user[@name=$user and @pass=$pass]\";\n        org.dom4j.XPath safeXPath = document.createXPath(xpathString);\n        safeXPath.setVariableContext(svc);\n        isExist = safeXPath.selectSingleNode(document) != null;\n        System.out.println(isExist);\n    }\n} catch (ParserConfigurationException e) {\n\n} catch (SAXException e) {\n\n} catch (XPathExpressionException e) {\n\n} catch (org.dom4j.DocumentException e) {\n\n}\n```\n\n## References\n* OWASP: [Testing for XPath Injection](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/09-Testing_for_XPath_Injection).\n* OWASP: [XPath Injection](https://owasp.org/www-community/attacks/XPATH_Injection).\n* Common Weakness Enumeration: [CWE-643](https://cwe.mitre.org/data/definitions/643.html).\n",
+                  "text": "# XPath injection\nIf an XPath expression is built using string concatenation, and the components of the concatenation include user input, it makes it very easy for a user to create a malicious XPath expression.\n\n\n## Recommendation\nIf user input must be included in an XPath expression, either sanitize the data or pre-compile the query and use variable references to include the user input.\n\nXPath injection can also be prevented by using XQuery.\n\n\n## Example\nIn the first three examples, the code accepts a name and password specified by the user, and uses this unvalidated and unsanitized value in an XPath expression. This is vulnerable to the user providing special characters or string sequences that change the meaning of the XPath expression to search for different values.\n\nIn the fourth example, the code uses `setXPathVariableResolver` which prevents XPath injection.\n\nThe final two examples are for dom4j. They show an example of XPath injection and one method of preventing it.\n\n\n```java\nfinal String xmlStr = \"\" + \n                        \"   \" + \n                        \"   \" + \n                        \"\";\ntry {\n    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();\n    domFactory.setNamespaceAware(true);\n    DocumentBuilder builder = domFactory.newDocumentBuilder();\n    //Document doc = builder.parse(\"user.xml\");\n    Document doc = builder.parse(new InputSource(new StringReader(xmlStr)));\n\n    XPathFactory factory = XPathFactory.newInstance();\n    XPath xpath = factory.newXPath();\n\n    // Injectable data\n    String user = request.getParameter(\"user\");\n    String pass = request.getParameter(\"pass\");\n    if (user != null && pass != null) {\n        boolean isExist = false;\n\n        // Bad expression\n        String expression1 = \"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\";\n        isExist = (boolean)xpath.evaluate(expression1, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        XPathExpression expression2 = xpath.compile(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\");\n        isExist = (boolean)expression2.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Bad expression\n        StringBuffer sb = new StringBuffer(\"/users/user[@name=\");\n        sb.append(user);\n        sb.append(\"' and @pass='\");\n        sb.append(pass);\n        sb.append(\"']\");\n        String query = sb.toString();\n        XPathExpression expression3 = xpath.compile(query);\n        isExist = (boolean)expression3.evaluate(doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n        // Good expression\n        String expression4 = \"/users/user[@name=$user and @pass=$pass]\";\n        xpath.setXPathVariableResolver(v -> {\n        switch (v.getLocalPart()) {\n            case \"user\":\n                return user;\n            case \"pass\":\n                return pass;\n            default:\n                throw new IllegalArgumentException();\n            }\n        });\n        isExist = (boolean)xpath.evaluate(expression4, doc, XPathConstants.BOOLEAN);\n        System.out.println(isExist);\n\n\n        // Bad Dom4j \n        org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader();\n        org.dom4j.Document document = reader.read(new InputSource(new StringReader(xmlStr)));\n        isExist = document.selectSingleNode(\"/users/user[@name='\" + user + \"' and @pass='\" + pass + \"']\") != null;\n        // or document.selectNodes\n        System.out.println(isExist);\n\n        // Good Dom4j\n        org.jaxen.SimpleVariableContext svc = new org.jaxen.SimpleVariableContext();\n        svc.setVariableValue(\"user\", user);\n        svc.setVariableValue(\"pass\", pass);\n        String xpathString = \"/users/user[@name=$user and @pass=$pass]\";\n        org.dom4j.XPath safeXPath = document.createXPath(xpathString);\n        safeXPath.setVariableContext(svc);\n        isExist = safeXPath.selectSingleNode(document) != null;\n        System.out.println(isExist);\n    }\n} catch (ParserConfigurationException e) {\n\n} catch (SAXException e) {\n\n} catch (XPathExpressionException e) {\n\n} catch (org.dom4j.DocumentException e) {\n\n}\n```\n\n## References\n* OWASP: [Testing for XPath Injection](https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/09-Testing_for_XPath_Injection).\n* OWASP: [XPath Injection](https://owasp.org/www-community/attacks/XPATH_Injection).\n* Common Weakness Enumeration: [CWE-643](https://cwe.mitre.org/data/definitions/643.html).\n"
+                },
+                "id": "java/xml/xpath-injection",
+                "name": "java/xml/xpath-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-643",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "XPath injection"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Performing an XSLT transformation with user-controlled stylesheets can lead to information disclosure or execution of arbitrary code."
+                },
+                "help": {
+                  "markdown": "# XSLT transformation with user-controlled stylesheet\nXSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML documents or other formats. Processing unvalidated XSLT stylesheets can allow attackers to read arbitrary files from the filesystem or to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to not process untrusted XSLT stylesheets. If user-provided stylesheets must be processed, enable the secure processing mode.\n\n\n## Example\nIn the following examples, the code accepts an XSLT stylesheet from the user and processes it.\n\nIn the first example, the user-provided XSLT stylesheet is parsed and processed.\n\nIn the second example, secure processing mode is enabled.\n\n\n```java\nimport javax.xml.XMLConstants;\nimport javax.xml.transform.TransformerFactory;\nimport javax.xml.transform.stream.StreamResult;\nimport javax.xml.transform.stream.StreamSource;\n\npublic void transform(Socket socket, String inputXml) throws Exception {\n  StreamSource xslt = new StreamSource(socket.getInputStream());\n  StreamSource xml = new StreamSource(new StringReader(inputXml));\n  StringWriter result = new StringWriter();\n  TransformerFactory factory = TransformerFactory.newInstance();\n\n  // BAD: User provided XSLT stylesheet is processed\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n\n  // GOOD: The secure processing mode is enabled\n  factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n}  \n```\n\n## References\n* Wikipedia: [XSLT](https://en.wikipedia.org/wiki/XSLT).\n* The Java Tutorials: [Transforming XML Data with XSLT](https://docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html).\n* [XSLT Injection Basics](https://blog.hunniccyber.com/ektron-cms-remote-code-execution-xslt-transform-injection-java/).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n",
+                  "text": "# XSLT transformation with user-controlled stylesheet\nXSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other XML documents or other formats. Processing unvalidated XSLT stylesheets can allow attackers to read arbitrary files from the filesystem or to execute arbitrary code.\n\n\n## Recommendation\nThe general recommendation is to not process untrusted XSLT stylesheets. If user-provided stylesheets must be processed, enable the secure processing mode.\n\n\n## Example\nIn the following examples, the code accepts an XSLT stylesheet from the user and processes it.\n\nIn the first example, the user-provided XSLT stylesheet is parsed and processed.\n\nIn the second example, secure processing mode is enabled.\n\n\n```java\nimport javax.xml.XMLConstants;\nimport javax.xml.transform.TransformerFactory;\nimport javax.xml.transform.stream.StreamResult;\nimport javax.xml.transform.stream.StreamSource;\n\npublic void transform(Socket socket, String inputXml) throws Exception {\n  StreamSource xslt = new StreamSource(socket.getInputStream());\n  StreamSource xml = new StreamSource(new StringReader(inputXml));\n  StringWriter result = new StringWriter();\n  TransformerFactory factory = TransformerFactory.newInstance();\n\n  // BAD: User provided XSLT stylesheet is processed\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n\n  // GOOD: The secure processing mode is enabled\n  factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);\n  factory.newTransformer(xslt).transform(xml, new StreamResult(result));\n}  \n```\n\n## References\n* Wikipedia: [XSLT](https://en.wikipedia.org/wiki/XSLT).\n* The Java Tutorials: [Transforming XML Data with XSLT](https://docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html).\n* [XSLT Injection Basics](https://blog.hunniccyber.com/ektron-cms-remote-code-execution-xslt-transform-injection-java/).\n* Common Weakness Enumeration: [CWE-74](https://cwe.mitre.org/data/definitions/74.html).\n"
+                },
+                "id": "java/xslt-injection",
+                "name": "java/xslt-injection",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-074/XsltInjection.ql",
+                  "security-severity": "9.8",
+                  "tags": [
+                    "external/cwe/cwe-074",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "XSLT transformation with user-controlled stylesheet"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Writing user input directly to a web page allows for a cross-site scripting vulnerability."
+                },
+                "help": {
+                  "markdown": "# Cross-site scripting\nDirectly writing user input (for example, an HTTP request parameter) to a web page, without properly sanitizing the input first, allows for a cross-site scripting vulnerability.\n\n\n## Recommendation\nTo guard against cross-site scripting, consider using contextual output encoding/escaping before writing user input to the page, or one of the other solutions that are mentioned in the reference.\n\n\n## Example\nThe following example shows the `page` parameter being written directly to the page, leaving the website vulnerable to cross-site scripting.\n\n\n```java\npublic class XSS extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: a request parameter is written directly to the Servlet response stream\n\t\tresponse.getWriter().print(\n\t\t\t\t\"The page \\\"\" + request.getParameter(\"page\") + \"\\\" was not found.\");\n\n\t}\n}\n\n```\n\n## References\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n",
+                  "text": "# Cross-site scripting\nDirectly writing user input (for example, an HTTP request parameter) to a web page, without properly sanitizing the input first, allows for a cross-site scripting vulnerability.\n\n\n## Recommendation\nTo guard against cross-site scripting, consider using contextual output encoding/escaping before writing user input to the page, or one of the other solutions that are mentioned in the reference.\n\n\n## Example\nThe following example shows the `page` parameter being written directly to the page, leaving the website vulnerable to cross-site scripting.\n\n\n```java\npublic class XSS extends HttpServlet {\n\tprotected void doGet(HttpServletRequest request, HttpServletResponse response)\n\tthrows ServletException, IOException {\n\t\t// BAD: a request parameter is written directly to the Servlet response stream\n\t\tresponse.getWriter().print(\n\t\t\t\t\"The page \\\"\" + request.getParameter(\"page\") + \"\\\" was not found.\");\n\n\t}\n}\n\n```\n\n## References\n* OWASP: [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html).\n* Wikipedia: [Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting).\n* Common Weakness Enumeration: [CWE-79](https://cwe.mitre.org/data/definitions/79.html).\n"
+                },
+                "id": "java/xss",
+                "name": "java/xss",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-079/XSS.ql",
+                  "security-severity": "6.1",
+                  "tags": [
+                    "external/cwe/cwe-079",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Cross-site scripting"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Parsing user-controlled XML documents and allowing expansion of external entity references may lead to disclosure of confidential data or denial of service."
+                },
+                "help": {
+                  "markdown": "# Resolving XML external entity in user-controlled data\nParsing untrusted XML files with a weakly configured XML parser may lead to an XML External Entity (XXE) attack. This type of attack uses external entity references to access arbitrary files on a system, carry out denial of service, or server side request forgery. Even when the result of parsing is not returned to the user, out-of-band data retrieval techniques may allow attackers to steal sensitive data. Denial of services can also be carried out in this situation.\n\nThere are many XML parsers for Java, and most of them are vulnerable to XXE because their default settings enable parsing of external entities. This query currently identifies vulnerable XML parsing from the following parsers: `javax.xml.parsers.DocumentBuilder`, `javax.xml.stream.XMLStreamReader`, `org.jdom.input.SAXBuilder`/`org.jdom2.input.SAXBuilder`, `javax.xml.parsers.SAXParser`,`org.dom4j.io.SAXReader`, `org.xml.sax.XMLReader`, `javax.xml.transform.sax.SAXSource`, `javax.xml.transform.TransformerFactory`, `javax.xml.transform.sax.SAXTransformerFactory`, `javax.xml.validation.SchemaFactory`, `javax.xml.bind.Unmarshaller` and `javax.xml.xpath.XPathExpression`.\n\n\n## Recommendation\nThe best way to prevent XXE attacks is to disable the parsing of any Document Type Declarations (DTDs) in untrusted data. If this is not possible you should disable the parsing of external general entities and external parameter entities. This improves security but the code will still be at risk of denial of service and server side request forgery attacks. Protection against denial of service attacks may also be implemented by setting entity expansion limits, which is done by default in recent JDK and JRE implementations. We recommend visiting OWASP's [XML Entity Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java), finding the specific XML parser, and applying the mitigation listed there. Other mitigations might be sufficient in some cases, but manual verification will be needed, as the query will continue to flag the parser as potentially dangerous.\n\n\n## Example\nThe following example calls `parse` on a `DocumentBuilder` that is not safely configured on untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic void parse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //unsafe\n}\n\n```\nIn this example, the `DocumentBuilder` is created with DTD disabled, securing it against XXE attack.\n\n\n```java\npublic void disableDTDParse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  factory.setFeature(\"http://apache.org/xml/features/disallow-doctype-decl\", true);\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //safe\n}\n\n```\n\n## References\n* OWASP vulnerability description: [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing).\n* OWASP guidance on parsing xml files: [XXE Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java).\n* Paper by Timothy Morgen: [XML Schema, DTD, and Entity Attacks](https://research.nccgroup.com/2014/05/19/xml-schema-dtd-and-entity-attacks-a-compendium-of-known-techniques/)\n* Out-of-band data retrieval: Timur Yunusov & Alexey Osipov, Black hat EU 2013: [XML Out-Of-Band Data Retrieval](https://www.slideshare.net/qqlan/bh-ready-v4).\n* Denial of service attack (Billion laughs): [Billion Laughs.](https://en.wikipedia.org/wiki/Billion_laughs)\n* The Java Tutorials: [Processing Limit Definitions.](https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html)\n* Common Weakness Enumeration: [CWE-611](https://cwe.mitre.org/data/definitions/611.html).\n* Common Weakness Enumeration: [CWE-776](https://cwe.mitre.org/data/definitions/776.html).\n* Common Weakness Enumeration: [CWE-827](https://cwe.mitre.org/data/definitions/827.html).\n",
+                  "text": "# Resolving XML external entity in user-controlled data\nParsing untrusted XML files with a weakly configured XML parser may lead to an XML External Entity (XXE) attack. This type of attack uses external entity references to access arbitrary files on a system, carry out denial of service, or server side request forgery. Even when the result of parsing is not returned to the user, out-of-band data retrieval techniques may allow attackers to steal sensitive data. Denial of services can also be carried out in this situation.\n\nThere are many XML parsers for Java, and most of them are vulnerable to XXE because their default settings enable parsing of external entities. This query currently identifies vulnerable XML parsing from the following parsers: `javax.xml.parsers.DocumentBuilder`, `javax.xml.stream.XMLStreamReader`, `org.jdom.input.SAXBuilder`/`org.jdom2.input.SAXBuilder`, `javax.xml.parsers.SAXParser`,`org.dom4j.io.SAXReader`, `org.xml.sax.XMLReader`, `javax.xml.transform.sax.SAXSource`, `javax.xml.transform.TransformerFactory`, `javax.xml.transform.sax.SAXTransformerFactory`, `javax.xml.validation.SchemaFactory`, `javax.xml.bind.Unmarshaller` and `javax.xml.xpath.XPathExpression`.\n\n\n## Recommendation\nThe best way to prevent XXE attacks is to disable the parsing of any Document Type Declarations (DTDs) in untrusted data. If this is not possible you should disable the parsing of external general entities and external parameter entities. This improves security but the code will still be at risk of denial of service and server side request forgery attacks. Protection against denial of service attacks may also be implemented by setting entity expansion limits, which is done by default in recent JDK and JRE implementations. We recommend visiting OWASP's [XML Entity Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java), finding the specific XML parser, and applying the mitigation listed there. Other mitigations might be sufficient in some cases, but manual verification will be needed, as the query will continue to flag the parser as potentially dangerous.\n\n\n## Example\nThe following example calls `parse` on a `DocumentBuilder` that is not safely configured on untrusted data, and is therefore inherently unsafe.\n\n\n```java\npublic void parse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //unsafe\n}\n\n```\nIn this example, the `DocumentBuilder` is created with DTD disabled, securing it against XXE attack.\n\n\n```java\npublic void disableDTDParse(Socket sock) throws Exception {\n  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n  factory.setFeature(\"http://apache.org/xml/features/disallow-doctype-decl\", true);\n  DocumentBuilder builder = factory.newDocumentBuilder();\n  builder.parse(sock.getInputStream()); //safe\n}\n\n```\n\n## References\n* OWASP vulnerability description: [XML External Entity (XXE) Processing](https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing).\n* OWASP guidance on parsing xml files: [XXE Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#java).\n* Paper by Timothy Morgen: [XML Schema, DTD, and Entity Attacks](https://research.nccgroup.com/2014/05/19/xml-schema-dtd-and-entity-attacks-a-compendium-of-known-techniques/)\n* Out-of-band data retrieval: Timur Yunusov & Alexey Osipov, Black hat EU 2013: [XML Out-Of-Band Data Retrieval](https://www.slideshare.net/qqlan/bh-ready-v4).\n* Denial of service attack (Billion laughs): [Billion Laughs.](https://en.wikipedia.org/wiki/Billion_laughs)\n* The Java Tutorials: [Processing Limit Definitions.](https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html)\n* Common Weakness Enumeration: [CWE-611](https://cwe.mitre.org/data/definitions/611.html).\n* Common Weakness Enumeration: [CWE-776](https://cwe.mitre.org/data/definitions/776.html).\n* Common Weakness Enumeration: [CWE-827](https://cwe.mitre.org/data/definitions/827.html).\n"
+                },
+                "id": "java/xxe",
+                "name": "java/xxe",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-611/XXE.ql",
+                  "security-severity": "9.1",
+                  "tags": [
+                    "external/cwe/cwe-611",
+                    "external/cwe/cwe-776",
+                    "external/cwe/cwe-827",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Resolving XML external entity in user-controlled data"
+                }
+              },
+              {
+                "defaultConfiguration": {
+                  "level": "error"
+                },
+                "fullDescription": {
+                  "text": "Extracting files from a malicious ZIP file, or similar type of archive, without validating that the destination file path is within the destination directory can allow an attacker to unexpectedly gain access to resources."
+                },
+                "help": {
+                  "markdown": "# Arbitrary file access during archive extraction (\"Zip Slip\")\nExtracting files from a malicious zip file, or similar type of archive, is at risk of directory traversal attacks if filenames from the archive are not properly validated.\n\nZip archives contain archive entries representing each file in the archive. These entries include a file path for the entry, but these file paths are not restricted and may contain unexpected special elements such as the directory traversal element (`..`). If these file paths are used to create a filesystem path, then a file operation may happen in an unexpected location. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nFor example, if a zip file contains a file entry `..\\sneaky-file`, and the zip file is extracted to the directory `c:\\output`, then naively combining the paths would result in an output file path of `c:\\output\\..\\sneaky-file`, which would cause the file to be written to `c:\\sneaky-file`.\n\n\n## Recommendation\nEnsure that output paths constructed from zip archive entries are validated to prevent writing files to unexpected locations.\n\nThe recommended way of writing an output file from a zip archive entry is to verify that the normalized full path of the output file starts with a prefix that matches the destination directory. Path normalization can be done with either `java.io.File.getCanonicalFile()` or `java.nio.file.Path.normalize()`. Prefix checking can be done with `String.startsWith(..)`, but it is better to use `java.nio.file.Path.startsWith(..)`, as the latter works on complete path segments.\n\nAnother alternative is to validate archive entries against a whitelist of expected files.\n\n\n## Example\nIn this example, a file path taken from a zip archive item entry is combined with a destination directory. The result is used as the destination file path without verifying that the result is within the destination directory. If provided with a zip file containing an archive path like `..\\sneaky-file`, then this file would be written outside the destination directory.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    FileOutputStream fos = new FileOutputStream(file); // BAD\n    // ... write entry to fos ...\n}\n\n```\nTo fix this vulnerability, we need to verify that the normalized `file` still has `destinationDir` as its prefix, and throw an exception if this is not the case.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    if (!file.toPath().normalize().startsWith(destinationDir.toPath()))\n        throw new Exception(\"Bad zip entry\");\n    FileOutputStream fos = new FileOutputStream(file); // OK\n    // ... write entry to fos ...\n}\n\n```\n\n## References\n* Snyk: [Zip Slip Vulnerability](https://snyk.io/research/zip-slip-vulnerability).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n",
+                  "text": "# Arbitrary file access during archive extraction (\"Zip Slip\")\nExtracting files from a malicious zip file, or similar type of archive, is at risk of directory traversal attacks if filenames from the archive are not properly validated.\n\nZip archives contain archive entries representing each file in the archive. These entries include a file path for the entry, but these file paths are not restricted and may contain unexpected special elements such as the directory traversal element (`..`). If these file paths are used to create a filesystem path, then a file operation may happen in an unexpected location. This can result in sensitive information being revealed or deleted, or an attacker being able to influence behavior by modifying unexpected files.\n\nFor example, if a zip file contains a file entry `..\\sneaky-file`, and the zip file is extracted to the directory `c:\\output`, then naively combining the paths would result in an output file path of `c:\\output\\..\\sneaky-file`, which would cause the file to be written to `c:\\sneaky-file`.\n\n\n## Recommendation\nEnsure that output paths constructed from zip archive entries are validated to prevent writing files to unexpected locations.\n\nThe recommended way of writing an output file from a zip archive entry is to verify that the normalized full path of the output file starts with a prefix that matches the destination directory. Path normalization can be done with either `java.io.File.getCanonicalFile()` or `java.nio.file.Path.normalize()`. Prefix checking can be done with `String.startsWith(..)`, but it is better to use `java.nio.file.Path.startsWith(..)`, as the latter works on complete path segments.\n\nAnother alternative is to validate archive entries against a whitelist of expected files.\n\n\n## Example\nIn this example, a file path taken from a zip archive item entry is combined with a destination directory. The result is used as the destination file path without verifying that the result is within the destination directory. If provided with a zip file containing an archive path like `..\\sneaky-file`, then this file would be written outside the destination directory.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    FileOutputStream fos = new FileOutputStream(file); // BAD\n    // ... write entry to fos ...\n}\n\n```\nTo fix this vulnerability, we need to verify that the normalized `file` still has `destinationDir` as its prefix, and throw an exception if this is not the case.\n\n\n```java\nvoid writeZipEntry(ZipEntry entry, File destinationDir) {\n    File file = new File(destinationDir, entry.getName());\n    if (!file.toPath().normalize().startsWith(destinationDir.toPath()))\n        throw new Exception(\"Bad zip entry\");\n    FileOutputStream fos = new FileOutputStream(file); // OK\n    // ... write entry to fos ...\n}\n\n```\n\n## References\n* Snyk: [Zip Slip Vulnerability](https://snyk.io/research/zip-slip-vulnerability).\n* OWASP: [Path Traversal](https://owasp.org/www-community/attacks/Path_Traversal).\n* Common Weakness Enumeration: [CWE-22](https://cwe.mitre.org/data/definitions/22.html).\n"
+                },
+                "id": "java/zipslip",
+                "name": "java/zipslip",
+                "properties": {
+                  "precision": "high",
+                  "queryURI": "https://github.com/github/codeql/blob/de325133c7a95d84489acdf5a6ced07886ff5c6d/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql",
+                  "security-severity": "7.5",
+                  "tags": [
+                    "external/cwe/cwe-022",
+                    "security"
+                  ]
+                },
+                "shortDescription": {
+                  "text": "Arbitrary file access during archive extraction (\"Zip Slip\")"
+                }
+              }
+            ],
+            "semanticVersion": "1.1.9+de325133c7a95d84489acdf5a6ced07886ff5c6d"
+          },
+          {
+            "name": "codeql/java-all",
+            "semanticVersion": "4.2.1+de325133c7a95d84489acdf5a6ced07886ff5c6d"
+          },
+          {
+            "name": "codeql/threat-models",
+            "semanticVersion": "1.0.12+de325133c7a95d84489acdf5a6ced07886ff5c6d"
+          }
+        ]
+      },
+      "versionControlProvenance": [
+        {
+          "branch": "refs/heads/master",
+          "repositoryUri": "https://github.com/nahsra/roller",
+          "revisionId": "ff265200a04605d080623fd54623285160460a72"
+        }
+      ]
+    }
+  ],
+  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
+  "version": "2.1.0"
+}
diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/GenericRemediationMetadata.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/GenericRemediationMetadata.java
index d02761508..d120ccb4d 100644
--- a/framework/codemodder-base/src/main/java/io/codemodder/remediation/GenericRemediationMetadata.java
+++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/GenericRemediationMetadata.java
@@ -18,7 +18,9 @@ public enum GenericRemediationMetadata {
   PREDICTABLE_SEED("predictable-seed"),
   ZIP_SLIP("zip-slip"),
   REGEX_INJECTION("regex-injection"),
-  ERROR_MESSAGE_EXPOSURE("error-message-exposure");
+  ERROR_MESSAGE_EXPOSURE("error-message-exposure"),
+  LOG_INJECTION("log-injection"),
+  WEAK_CRYPTO_ALGORITHM("weak-crypto-algorithm");
 
   private final CodemodReporterStrategy reporter;
 
diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogInjectionRemediator.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogInjectionRemediator.java
new file mode 100644
index 000000000..0dac34052
--- /dev/null
+++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogInjectionRemediator.java
@@ -0,0 +1,58 @@
+package io.codemodder.remediation.loginjection;
+
+import com.github.javaparser.ast.CompilationUnit;
+import io.codemodder.CodemodFileScanningResult;
+import io.codemodder.codetf.DetectorRule;
+import io.codemodder.remediation.*;
+import java.util.Collection;
+import java.util.Optional;
+import java.util.Set;
+import java.util.function.Function;
+
+/** Remediator for Log Injection vulnerabilities. */
+public final class LogInjectionRemediator implements Remediator {
+
+  private final SearcherStrategyRemediator searchStrategyRemediator;
+
+  public LogInjectionRemediator() {
+    this.searchStrategyRemediator =
+        new SearcherStrategyRemediator.Builder()
+            .withSearcherStrategyPair(
+                new FixCandidateSearcher.Builder()
+                    .withMatcher(
+                        n ->
+                            Optional.of(n)
+                                .map(MethodOrConstructor::new)
+                                .filter(mce -> mce.isMethodCallWithNameIn(loggerNames))
+                                .filter(mce -> mce.asNode().hasScope())
+                                .filter(mce -> !mce.getArguments().isEmpty())
+                                .isPresent())
+                    .build(),
+                new LogStatementFixer())
+            .build();
+  }
+
+  @Override
+  public CodemodFileScanningResult remediateAll(
+      CompilationUnit cu,
+      String path,
+      DetectorRule detectorRule,
+      Collection findingsForPath,
+      Function findingIdExtractor,
+      Function findingStartLineExtractor,
+      Function> findingEndLineExtractor,
+      Function> findingStartColumnExtractor) {
+    return searchStrategyRemediator.remediateAll(
+        cu,
+        path,
+        detectorRule,
+        findingsForPath,
+        findingIdExtractor,
+        findingStartLineExtractor,
+        findingEndLineExtractor,
+        findingStartColumnExtractor);
+  }
+
+  private static final Set loggerNames =
+      Set.of("log", "warn", "error", "info", "debug", "trace", "fatal");
+}
diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogStatementFixer.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogStatementFixer.java
new file mode 100644
index 000000000..7001405ff
--- /dev/null
+++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/loginjection/LogStatementFixer.java
@@ -0,0 +1,163 @@
+package io.codemodder.remediation.loginjection;
+
+import static io.codemodder.javaparser.JavaParserTransformer.wrap;
+
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.Node;
+import com.github.javaparser.ast.NodeList;
+import com.github.javaparser.ast.body.Parameter;
+import com.github.javaparser.ast.body.VariableDeclarator;
+import com.github.javaparser.ast.expr.BinaryExpr;
+import com.github.javaparser.ast.expr.Expression;
+import com.github.javaparser.ast.expr.MethodCallExpr;
+import com.github.javaparser.ast.expr.NameExpr;
+import com.github.javaparser.resolution.types.ResolvedType;
+import io.codemodder.DependencyGAV;
+import io.codemodder.ast.ASTs;
+import io.codemodder.ast.LocalDeclaration;
+import io.codemodder.remediation.RemediationStrategy;
+import io.codemodder.remediation.SuccessOrReason;
+import io.github.pixee.security.Newlines;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * The shapes of code we want to be able to fix:
+ *
+ * 
+ * log.info("User with id: " + userId + " has been created");
+ * logger.error("User with id: " + userId + " has been created", ex);
+ * log.warn(msg);
+ * 
+ */ +final class LogStatementFixer implements RemediationStrategy { + + @Override + public SuccessOrReason fix(final CompilationUnit compilationUnit, final Node node) { + MethodCallExpr logCall = (MethodCallExpr) node; + NodeList arguments = logCall.getArguments(); + return fixArguments(arguments); + } + + private SuccessOrReason fixArguments(final NodeList arguments) { + + // first and only is NameExpr (not an exception) (args == 1), (args can be 2 if exception) + if ((arguments.size() == 1 && arguments.get(0).isNameExpr()) + || (arguments.size() == 2 + && arguments.get(0).isNameExpr() + && isException(arguments.get(1)))) { + NameExpr argument = arguments.get(0).asNameExpr(); + wrapWithNewlineSanitizer(argument); + return SuccessOrReason.success(List.of(DependencyGAV.OWASP_XSS_JAVA_ENCODER)); + } + + // first is string literal and second is NameExpr (args can be 3 if not exception) + if ((arguments.size() == 2 + && arguments.get(0).isStringLiteralExpr() + && arguments.get(1).isNameExpr()) + || (arguments.size() == 3 + && arguments.get(0).isStringLiteralExpr() + && arguments.get(1).isNameExpr() + && isException(arguments.get(2)))) { + NameExpr argument = arguments.get(1).asNameExpr(); + wrapWithNewlineSanitizer(argument); + return SuccessOrReason.success(List.of(DependencyGAV.OWASP_XSS_JAVA_ENCODER)); + } + + // first is BinaryExpr with NameExpr in it (args == 2) (args can be 3 if last is exception) + if ((arguments.size() == 2 && arguments.get(0).isBinaryExpr()) + || (arguments.size() == 3 + && arguments.get(0).isBinaryExpr() + && isException(arguments.get(2)))) { + BinaryExpr binaryExpr = arguments.get(0).asBinaryExpr(); + Optional expressionToWrap = findExpressionToWrap(binaryExpr); + if (expressionToWrap.isPresent()) { + wrapWithNewlineSanitizer(expressionToWrap.get()); + return SuccessOrReason.success(List.of(DependencyGAV.OWASP_XSS_JAVA_ENCODER)); + } + } + + return SuccessOrReason.reason("Unfixable log call shape"); + } + + private boolean isException(final Expression expression) { + if (expression.isNameExpr()) { + try { + ResolvedType type = expression.calculateResolvedType(); + String typeName = type.describe(); + return isExceptionTypeName(typeName); + } catch (Exception e) { + Optional declarationRef = + ASTs.findEarliestLocalDeclarationOf(expression, "ex"); + if (declarationRef.isPresent()) { + LocalDeclaration localDeclaration = declarationRef.get(); + Node declaration = localDeclaration.getDeclaration(); + // handle if its a parameter or a local variable + if (declaration instanceof Parameter param) { + String typeAsString = param.getTypeAsString(); + return isExceptionTypeName(typeAsString); + } else if (declaration instanceof VariableDeclarator var) { + String typeAsString = var.getTypeAsString(); + return isExceptionTypeName(typeAsString); + } + } + Optional nameSourceNodeRef = ASTs.findNonCallableSimpleNameSource(expression, "e"); + if (nameSourceNodeRef.isPresent()) { + Node declaration = nameSourceNodeRef.get(); + // handle if its a parameter or a local variable + if (declaration instanceof Parameter param) { + String typeAsString = param.getTypeAsString(); + return isExceptionTypeName(typeAsString); + } else if (declaration instanceof VariableDeclarator var) { + String typeAsString = var.getTypeAsString(); + return isExceptionTypeName(typeAsString); + } + } + } + } + return false; + } + + private static boolean isExceptionTypeName(final String typeName) { + return typeName.endsWith("Exception") || typeName.endsWith("Throwable"); + } + + /** + * We handle 4 expression code shapes. + * print(user.getName()); + * print("Hello, " + user.getName()); + * print(user.getName() + ", hello!"); + * print("Hello, " + user.getName() + ", hello!"); + * + * + *

Note that we should only handle, for the tougher cases, string literals in combination with + * the given expression. Note any other combination of expressions. + */ + private static Optional findExpressionToWrap(final Expression argument) { + + if (argument.isNameExpr()) { + return Optional.of(argument); + } else if (argument.isBinaryExpr()) { + BinaryExpr binaryExpr = argument.asBinaryExpr(); + if (binaryExpr.getLeft().isBinaryExpr() && binaryExpr.getRight().isStringLiteralExpr()) { + BinaryExpr leftBinaryExpr = binaryExpr.getLeft().asBinaryExpr(); + if (leftBinaryExpr.getLeft().isStringLiteralExpr() + && !leftBinaryExpr.getRight().isStringLiteralExpr()) { + return Optional.of(leftBinaryExpr.getRight()); + } + } else if (binaryExpr.getLeft().isStringLiteralExpr() + && binaryExpr.getRight().isStringLiteralExpr()) { + return Optional.empty(); + } else if (binaryExpr.getLeft().isStringLiteralExpr()) { + return Optional.of(binaryExpr.getRight()); + } else if (binaryExpr.getRight().isStringLiteralExpr()) { + return Optional.of(binaryExpr.getLeft()); + } + } + return Optional.empty(); + } + + private static void wrapWithNewlineSanitizer(final Expression expression) { + wrap(expression).withStaticMethod(Newlines.class.getName(), "stripNewLines", true); + } +} diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/MessageDigestFixer.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/MessageDigestFixer.java new file mode 100644 index 000000000..772c62f60 --- /dev/null +++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/MessageDigestFixer.java @@ -0,0 +1,35 @@ +package io.codemodder.remediation.weakcrypto; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.MethodCallExpr; +import com.github.javaparser.ast.expr.StringLiteralExpr; +import io.codemodder.remediation.RemediationStrategy; +import io.codemodder.remediation.SuccessOrReason; + +/** Changes the algorithm used in a MessageDigest.getInstance() call to SHA-256. */ +final class MessageDigestFixer implements RemediationStrategy { + + @Override + public SuccessOrReason fix(final CompilationUnit cu, final Node node) { + MethodCallExpr getInstanceCall = (MethodCallExpr) node; + // change the algorithm to SHA-256 + if (getInstanceCall.getArguments().size() != 1) { + return SuccessOrReason.reason("getInstance() should have exactly one argument"); + } + + Expression argument = getInstanceCall.getArguments().get(0); + argument.replace(new StringLiteralExpr("SHA-256")); + return SuccessOrReason.success(); + } + + /** Check if the method call expression is a call to {@code MessageDigest.getInstance(String)}. */ + static boolean match(final Node node) { + return node instanceof MethodCallExpr call + && call.getNameAsString().equals("getInstance") + && call.getArguments().isNonEmpty() + && call.getScope().isPresent() + && call.getScope().get().isNameExpr(); + } +} diff --git a/framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/WeakCryptoAlgorithmRemediator.java b/framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/WeakCryptoAlgorithmRemediator.java new file mode 100644 index 000000000..de122ee42 --- /dev/null +++ b/framework/codemodder-base/src/main/java/io/codemodder/remediation/weakcrypto/WeakCryptoAlgorithmRemediator.java @@ -0,0 +1,49 @@ +package io.codemodder.remediation.weakcrypto; + +import com.github.javaparser.ast.CompilationUnit; +import io.codemodder.CodemodFileScanningResult; +import io.codemodder.codetf.DetectorRule; +import io.codemodder.remediation.FixCandidateSearcher; +import io.codemodder.remediation.Remediator; +import io.codemodder.remediation.SearcherStrategyRemediator; +import java.util.Collection; +import java.util.Optional; +import java.util.function.Function; + +/** Remediator for Weak Crypto Algorithm vulnerabilities. */ +public final class WeakCryptoAlgorithmRemediator implements Remediator { + + private final SearcherStrategyRemediator searchStrategyRemediator; + + public WeakCryptoAlgorithmRemediator() { + this.searchStrategyRemediator = + new SearcherStrategyRemediator.Builder() + .withSearcherStrategyPair( + new FixCandidateSearcher.Builder() + .withMatcher(MessageDigestFixer::match) + .build(), + new MessageDigestFixer()) + .build(); + } + + @Override + public CodemodFileScanningResult remediateAll( + CompilationUnit cu, + String path, + DetectorRule detectorRule, + Collection findingsForPath, + Function findingIdExtractor, + Function findingStartLineExtractor, + Function> findingEndLineExtractor, + Function> findingColumnExtractor) { + return searchStrategyRemediator.remediateAll( + cu, + path, + detectorRule, + findingsForPath, + findingIdExtractor, + findingStartLineExtractor, + findingEndLineExtractor, + findingColumnExtractor); + } +} diff --git a/framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/description.md b/framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/description.md new file mode 100644 index 000000000..8a13066cc --- /dev/null +++ b/framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/description.md @@ -0,0 +1,12 @@ +This change ensures that log messages can't contain newline characters, leaving you vulnerable to Log Forging / Log Injection. + +If malicious users can get newline characters into a log message, they can inject and forge new log entries that look like they came from the server, and trick log analysis tools, administrators, and more. This leads to vulnerabilities like Log Injection, Log Forging, and more attacks from there. + +Our change simply strips out newline characters from log messages, ensuring that they can't be used to forge new log entries. +```diff ++ import io.github.pixee.security.Newlines; + ... + String orderId = getUserOrderId(); +- log.info("User order ID: " + orderId); ++ log.info("User order ID: " + Newlines.stripNewlines(orderId)); +``` diff --git a/framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/report.json b/framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/report.json new file mode 100644 index 000000000..330874968 --- /dev/null +++ b/framework/codemodder-base/src/main/resources/generic-remediation-reports/log-injection/report.json @@ -0,0 +1,6 @@ +{ + "summary" : "Introduced protections against Log Injection / Forging attacks", + "change" : "Added a call to replace any newlines the value", + "reviewGuidanceJustification" : "This strips newlines from the value before it is logged, preventing log injection attacks", + "references" : ["https://owasp.org/www-community/attacks/Log_Injection", "https://knowledge-base.secureflag.com/vulnerabilities/inadequate_input_validation/log_injection_vulnerability.html", "https://cwe.mitre.org/data/definitions/117.html"] +} diff --git a/framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/description.md b/framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/description.md new file mode 100644 index 000000000..ebc75ace7 --- /dev/null +++ b/framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/description.md @@ -0,0 +1,10 @@ +This change ensures that weak cryptographic algorithms are not used in the application. Weak cryptographic algorithms are algorithms that are known to be vulnerable to attacks, and should not be used in secure applications. They can be exploited by attackers to decrypt sensitive data, impersonate users, and perform other malicious activities. + +In the past, these events were considered more hypothetical, but with modern access to scalable compute, attacks have become more and more practical. For example, [multiple real-world attacks](https://en.wikipedia.org/wiki/SHA-1#Attacks) have been demonstrated against SHA-1. + +Our changes look something like this: + +```diff +- MessageDigest md = MessageDigest.getInstance("MD5"); ++ MessageDigest md = MessageDigest.getInstance("SHA-256"); +``` diff --git a/framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/report.json b/framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/report.json new file mode 100644 index 000000000..cb22eeadf --- /dev/null +++ b/framework/codemodder-base/src/main/resources/generic-remediation-reports/weak-crypto-algorithm/report.json @@ -0,0 +1,5 @@ +{ + "summary" : "Moved to stronger cryptographic algorithm", + "change" : "Updated to use a stronger cryptographic algorithm.", + "references" : ["https://cwe.mitre.org/data/definitions/327.html", "https://cwe.mitre.org/data/definitions/328.html"] +} diff --git a/framework/codemodder-base/src/test/java/io/codemodder/remediation/jndiinjection/DefaultJNDIInjectionRemediatorTest.java b/framework/codemodder-base/src/test/java/io/codemodder/remediation/jndiinjection/DefaultJNDIInjectionRemediatorTest.java index 4d9324747..4f2deb7a9 100644 --- a/framework/codemodder-base/src/test/java/io/codemodder/remediation/jndiinjection/DefaultJNDIInjectionRemediatorTest.java +++ b/framework/codemodder-base/src/test/java/io/codemodder/remediation/jndiinjection/DefaultJNDIInjectionRemediatorTest.java @@ -53,7 +53,6 @@ void it_doesnt_fix_unfixable( i -> Optional.empty()); assertThat(result.changes()).isEmpty(); - ; List unfixedFindings = result.unfixedFindings(); assertThat(unfixedFindings).hasSize(1); diff --git a/framework/codemodder-base/src/test/java/io/codemodder/remediation/loginjection/LogInjectionRemediatorTest.java b/framework/codemodder-base/src/test/java/io/codemodder/remediation/loginjection/LogInjectionRemediatorTest.java new file mode 100644 index 000000000..5dc6e6bc9 --- /dev/null +++ b/framework/codemodder-base/src/test/java/io/codemodder/remediation/loginjection/LogInjectionRemediatorTest.java @@ -0,0 +1,246 @@ +package io.codemodder.remediation.loginjection; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.printer.lexicalpreservation.LexicalPreservingPrinter; +import io.codemodder.CodemodChange; +import io.codemodder.CodemodFileScanningResult; +import io.codemodder.codetf.DetectorRule; +import io.codemodder.codetf.FixedFinding; +import io.codemodder.javaparser.JavaParserFactory; +import java.io.IOException; +import java.util.List; +import java.util.Optional; +import java.util.stream.Stream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +final class LogInjectionRemediatorTest { + + private DetectorRule rule; + private JavaParser parser; + + @BeforeEach + void setup() throws IOException { + this.parser = JavaParserFactory.newFactory().create(List.of()); + this.rule = new DetectorRule("log-injection", "Log Injection", null); + } + + private static Stream fixableSamples() { + return Stream.of( + Arguments.of( + """ + class Foo { + void foo(String msg) { + log.info(msg); + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + class Foo { + void foo(String msg) { + log.info(stripNewLines(msg)); + } + } + """, + 3), + Arguments.of( + """ + class Foo { + void foo(String msg, MyException ex) { + log.info(msg, ex); + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + + class Foo { + void foo(String msg, MyException ex) { + log.info(stripNewLines(msg), ex); + } + } + """, + 3), + Arguments.of( + """ + class Foo { + void foo(String msg) { + MyException ex = null; + log.info(msg, ex); + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + + class Foo { + void foo(String msg) { + MyException ex = null; + log.info(stripNewLines(msg), ex); + } + } + """, + 4), + Arguments.of( + """ + class Foo { + void foo(String msg) { + try { + doThing(); + } catch(MyException e) { + log.info(msg, e); + } + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + + class Foo { + void foo(String msg) { + try { + doThing(); + } catch(MyException e) { + log.info(stripNewLines(msg), e); + } + } + } + """, + 6), + Arguments.of( + """ + class Foo { + void foo(String user, MyException ex) { + log.info("hi " + user, ex); + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + + class Foo { + void foo(String user, MyException ex) { + log.info("hi " + stripNewLines(user), ex); + } + } + """, + 3), + Arguments.of( + """ + class Foo { + void foo(String user, MyException ex) { + log.info("hi " + user + " its me!", ex); + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + + class Foo { + void foo(String user, MyException ex) { + log.info("hi " + stripNewLines(user) + " its me!", ex); + } + } + """, + 3), + Arguments.of( + """ + class Foo { + void foo(String user, MyException ex) { + log.info("hi {}", user, ex); + } + } + """, + """ + import static io.github.pixee.security.Newlines.stripNewLines; + + class Foo { + void foo(String user, MyException ex) { + log.info("hi {}", stripNewLines(user), ex); + } + } + """, + 3)); + } + + private static Stream unfixableSamples() { + return Stream.of( + Arguments.of( + """ + class Foo { + void foo(String msg) { + log.weirdMethodName("hi " + msg); // method name is not a log method + } + } + """, + 3), + Arguments.of( + """ + class Foo { + void foo(String s1, String s2) { + log.debug("hi " + s1 + " and " + s2); // not sure what to fix + } + } + """, + 3), + Arguments.of( + """ + class Foo { + void foo(String s1) { + debug("hi " + s1); // no scope + } + } + """, + 3)); + } + + @ParameterizedTest + @MethodSource("unfixableSamples") + void it_does_not_fix_samples(final String beforeCode, final int line) { + CompilationUnit cu = parser.parse(beforeCode).getResult().orElseThrow(); + LexicalPreservingPrinter.setup(cu); + var result = scanAndFix(cu, line); + assertThat(result.changes()).isEmpty(); + } + + @ParameterizedTest + @MethodSource("fixableSamples") + void it_fixes_samples(final String beforeCode, final String afterCode, final int line) { + CompilationUnit cu = parser.parse(beforeCode).getResult().orElseThrow(); + LexicalPreservingPrinter.setup(cu); + + var result = scanAndFix(cu, line); + + assertThat(result.changes()).hasSize(1); + CodemodChange change = result.changes().get(0); + assertThat(change.lineNumber()).isEqualTo(line); + + List fixedFindings = change.getFixedFindings(); + assertThat(fixedFindings).hasSize(1); + FixedFinding fixedFinding = fixedFindings.get(0); + assertThat(fixedFinding.getId()).isEqualTo("key"); + assertThat(fixedFinding.getRule()).isEqualTo(rule); + assertThat(result.changes()).isNotEmpty(); + String actualCode = LexicalPreservingPrinter.print(cu); + assertThat(actualCode).isEqualToIgnoringWhitespace(afterCode); + } + + private CodemodFileScanningResult scanAndFix(final CompilationUnit cu, final int line) { + LogInjectionRemediator remediator = new LogInjectionRemediator<>(); + return remediator.remediateAll( + cu, + "Log.java", + rule, + List.of(new Object()), + f -> "key", + f -> line, + i -> Optional.empty(), + i -> Optional.empty()); + } +}